feat: add about tab

This commit is contained in:
Anna 2022-02-06 23:33:11 -05:00
parent c15da7721a
commit 3b84dbd104
Signed by: anna
GPG Key ID: 0B391D8F06FCD9E0
8 changed files with 1223 additions and 1019 deletions

View File

@ -222,6 +222,51 @@ namespace ChatTwo.Resources {
}
}
/// <summary>
/// Looks up a localized string similar to Click the button to the left to see what&apos;s being worked on and what&apos;s next..
/// </summary>
internal static string Options_About_ClickUp {
get {
return ResourceManager.GetString("Options_About_ClickUp", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Click the button to the left to help translate {0}..
/// </summary>
internal static string Options_About_CrowdIn {
get {
return ResourceManager.GetString("Options_About_CrowdIn", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to {0} is a project to completely recreate the in-game chat and make it even better..
/// </summary>
internal static string Options_About_Opening {
get {
return ResourceManager.GetString("Options_About_Opening", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to About.
/// </summary>
internal static string Options_About_Tab {
get {
return ResourceManager.GetString("Options_About_Tab", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Translators.
/// </summary>
internal static string Options_About_Translators {
get {
return ResourceManager.GetString("Options_About_Translators", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Allow moving chat.
/// </summary>

View File

@ -131,13 +131,13 @@
<value>Chatfenster während Zwischensequenzen verbergen</value>
</data>
<data name="Options_HideDuringCutscenes_Description" xml:space="preserve">
<value>Verbirgt Chat 2 während Zwischensequenzen.</value>
<value>Verbirgt {0} während Zwischensequenzen.</value>
</data>
<data name="Options_NativeItemTooltips_Name" xml:space="preserve">
<value>Originale Itembeschreibungen anzeigen</value>
</data>
<data name="Options_NativeItemTooltips_Description" xml:space="preserve">
<value>Zeigt die spielinterne Itembeschreibung in Chat 2 an.</value>
<value>Zeigt die spielinterne Itembeschreibung in {0} an.</value>
</data>
<data name="Options_SidebarTabView_Name" xml:space="preserve">
<value>Kanäle in der Seitenleiste anzeigen</value>
@ -326,14 +326,14 @@
<value>Japanische Schrift</value>
</data>
<data name="Options_Font_Description" xml:space="preserve">
<value>Die Schriftart, die Chat 2 nutzt, um nicht-Japanischen Text anzuzeigen.</value>
<value>Die Schriftart, die {0} nutzt, um nicht-Japanischen Text anzuzeigen.</value>
</data>
<data name="Options_Font_Warning" xml:space="preserve">
<value>Bestimmte Schriftarten können das Spiel zum Absturz bringen.
Sie wurden gewarnt.</value>
</data>
<data name="Options_JapaneseFont_Description" xml:space="preserve">
<value>Die Schriftart, die Chat 2 nutzt, um Japanischen Text anzuzeigen.</value>
<value>Die Schriftart, die {0} nutzt, um Japanischen Text anzuzeigen.</value>
</data>
<data name="Options_Tabs_ChannelTypes_Special" xml:space="preserve">
<value>Spezielles</value>
@ -352,7 +352,23 @@ Sie wurden gewarnt.</value>
</data>
<data name="ChatLog_Tabs_Delete" xml:space="preserve">
<value>Tab löschen</value>
<comment>ChatLog_Tabs_Delete
Tooltip shown for a button in a tab context menu to delete the tab.</comment>
</data>
<data name="Options_HideWhenNotLoggedIn_Name" xml:space="preserve">
<value>Verberge Chatfenster wenn nicht angemeldet</value>
</data>
<data name="Options_HideWhenNotLoggedIn_Description" xml:space="preserve">
<value>Verbirgt {0} wenn Sie mit keinem Charakter angemeldet sind.</value>
</data>
<data name="Tabs_Presets_General" xml:space="preserve">
<value>Allgemein</value>
</data>
<data name="Options_Tabs_Preset" xml:space="preserve">
<value>Preset: {0}</value>
</data>
<data name="Tabs_Presets_Event" xml:space="preserve">
<value>Event</value>
</data>
<data name="Options_Tabs_NewTab" xml:space="preserve">
<value>New tab</value>
</data>
</root>

View File

@ -131,19 +131,19 @@
<value>Ocultar la interfaz del plug-in durante las cinemáticas</value>
</data>
<data name="Options_HideDuringCutscenes_Description" xml:space="preserve">
<value>Ocultar Chat 2 durante las cinemáticas.</value>
<value>Ocultar {0} durante las cinemáticas.</value>
</data>
<data name="Options_NativeItemTooltips_Name" xml:space="preserve">
<value>Mostrar descripción del ítem</value>
</data>
<data name="Options_NativeItemTooltips_Description" xml:space="preserve">
<value>Mostrar descripción del ítem cuando el cursor pase sobre el objeto en el Chat 2.</value>
<value>Mostrar descripción del ítem cuando el cursor pase sobre el objeto en el {0}.</value>
</data>
<data name="Options_SidebarTabView_Name" xml:space="preserve">
<value>Mostrar pestañas en la barra lateral</value>
</data>
<data name="Options_SidebarTabView_Description" xml:space="preserve">
<value>Mostrar pestañas en Chat 2 como barra lateral en lugar de una barra en la parte superior.</value>
<value>Mostrar pestañas en {0} como barra lateral en lugar de una barra en la parte superior.</value>
</data>
<data name="Options_PrettierTimestamps_Name" xml:space="preserve">
<value>Usar diseño de marca de tiempo</value>
@ -236,7 +236,7 @@
<value>Nueva pestaña</value>
</data>
<data name="Settings_Kofi" xml:space="preserve">
<value>Apóyame en Ko-fi</value>
<value>Apoyar a {0} en Ko-fi</value>
</data>
<data name="Settings_SaveAndClose" xml:space="preserve">
<value>Guardar y cerrar</value>
@ -326,13 +326,13 @@
<value>Fuente japonesa</value>
</data>
<data name="Options_Font_Description" xml:space="preserve">
<value>La fuente Chat 2 se utilizará para mostrar texto no japonés.</value>
<value>La fuente {0} se utilizará para mostrar texto no japonés.</value>
</data>
<data name="Options_Font_Warning" xml:space="preserve">
<value>El uso de ciertas fuentes del sistema puede fallar en su juego. Se le ha advertido.</value>
</data>
<data name="Options_JapaneseFont_Description" xml:space="preserve">
<value>La fuente Chat 2 se utilizará para mostrar el texto japonés.</value>
<value>La fuente {0} se utilizará para mostrar el texto japonés.</value>
</data>
<data name="Options_Tabs_ChannelTypes_Special" xml:space="preserve">
<value>Especiales</value>
@ -351,7 +351,23 @@
</data>
<data name="ChatLog_Tabs_Delete" xml:space="preserve">
<value>Eliminar Pestaña</value>
<comment>ChatLog_Tabs_Delete
Tooltip shown for a button in a tab context menu to delete the tab.</comment>
</data>
<data name="Options_HideWhenNotLoggedIn_Name" xml:space="preserve">
<value>Ocultar cuando no se inicie sesión</value>
</data>
<data name="Options_HideWhenNotLoggedIn_Description" xml:space="preserve">
<value>Ocultar {0} cuando no haya iniciado sesión en un personaje.</value>
</data>
<data name="Tabs_Presets_General" xml:space="preserve">
<value>General</value>
</data>
<data name="Options_Tabs_Preset" xml:space="preserve">
<value>Preset: {0}</value>
</data>
<data name="Tabs_Presets_Event" xml:space="preserve">
<value>Evento</value>
</data>
<data name="Options_Tabs_NewTab" xml:space="preserve">
<value>Nueva pestaña</value>
</data>
</root>

View File

@ -131,19 +131,19 @@
<value>Cacher le chat durant les cinématiques</value>
</data>
<data name="Options_HideDuringCutscenes_Description" xml:space="preserve">
<value>Cache Chat 2 durant les cinématiques.</value>
<value>Cache {0} durant les cinématiques.</value>
</data>
<data name="Options_NativeItemTooltips_Name" xml:space="preserve">
<value>Afficher les détails natifs des objets</value>
</data>
<data name="Options_NativeItemTooltips_Description" xml:space="preserve">
<value>Affiche les détails des objets natifs lorsque vous survolez les liens d'objets dans Chat 2.</value>
<value>Affiche les détails des objets natifs lorsque vous survolez les liens d'objets dans {0}.</value>
</data>
<data name="Options_SidebarTabView_Name" xml:space="preserve">
<value>Afficher les onglets dans une barre latérale</value>
</data>
<data name="Options_SidebarTabView_Description" xml:space="preserve">
<value>Affiche les onglets de Chat 2 dans une barre latérale au lieu d'une barre horizontale en haut.</value>
<value>Affiche les onglets de {0} dans une barre latérale au lieu d'une barre horizontale en haut.</value>
</data>
<data name="Options_PrettierTimestamps_Name" xml:space="preserve">
<value>Utiliser une mise en page moderne pour l'horodatage</value>
@ -326,13 +326,13 @@
<value>Police Japonaise</value>
</data>
<data name="Options_Font_Description" xml:space="preserve">
<value>La police que Chat 2 utilisera pour afficher du texte non-Japonais.</value>
<value>La police que {0} utilisera pour afficher du texte non-Japonais.</value>
</data>
<data name="Options_Font_Warning" xml:space="preserve">
<value>L'utilisation de certaines polices système peut faire planter votre jeu. Vous avez été prévenu.</value>
</data>
<data name="Options_JapaneseFont_Description" xml:space="preserve">
<value>La police que Chat 2 utilisera pour afficher du texte Japonais.</value>
<value>La police que {0} utilisera pour afficher du texte Japonais.</value>
</data>
<data name="Options_Tabs_ChannelTypes_Special" xml:space="preserve">
<value>Spéciaux</value>
@ -351,7 +351,23 @@
</data>
<data name="ChatLog_Tabs_Delete" xml:space="preserve">
<value>Supprimer l'onglet</value>
<comment>ChatLog_Tabs_Delete
Tooltip shown for a button in a tab context menu to delete the tab.</comment>
</data>
<data name="Options_HideWhenNotLoggedIn_Name" xml:space="preserve">
<value>Masquer lorsque vous n'êtes pas connecté</value>
</data>
<data name="Options_HideWhenNotLoggedIn_Description" xml:space="preserve">
<value>Masque {0} quand vous n'êtes pas encore connecté sur un personnage.</value>
</data>
<data name="Tabs_Presets_General" xml:space="preserve">
<value>Général</value>
</data>
<data name="Options_Tabs_Preset" xml:space="preserve">
<value>Preset: {0}</value>
</data>
<data name="Tabs_Presets_Event" xml:space="preserve">
<value>Evénement</value>
</data>
<data name="Options_Tabs_NewTab" xml:space="preserve">
<value>Nouvel onglet</value>
</data>
</root>

View File

@ -371,4 +371,19 @@
<data name="Options_Tabs_NewTab" xml:space="preserve">
<value>New tab</value>
</data>
<data name="Options_About_Tab" xml:space="preserve">
<value>About</value>
</data>
<data name="Options_About_Opening" xml:space="preserve">
<value>{0} is a project to completely recreate the in-game chat and make it even better.</value>
</data>
<data name="Options_About_ClickUp" xml:space="preserve">
<value>Click the button to the left to see what's being worked on and what's next.</value>
</data>
<data name="Options_About_CrowdIn" xml:space="preserve">
<value>Click the button to the left to help translate {0}.</value>
</data>
<data name="Options_About_Translators" xml:space="preserve">
<value>Translators</value>
</data>
</root>

View File

@ -131,19 +131,19 @@
<value>Скрыть чат во время катсцен</value>
</data>
<data name="Options_HideDuringCutscenes_Description" xml:space="preserve">
<value>Скрыть Chat 2 во время катсцен.</value>
<value>Скрыть {0} во время катсцен.</value>
</data>
<data name="Options_NativeItemTooltips_Name" xml:space="preserve">
<value>Показывать подсказки для предметов</value>
</data>
<data name="Options_NativeItemTooltips_Description" xml:space="preserve">
<value>Показывать подсказки при наведении курсора на предметы в Chat 2.</value>
<value>Показывать подсказки при наведении курсора на предметы внутри {0}.</value>
</data>
<data name="Options_SidebarTabView_Name" xml:space="preserve">
<value>Отображать вкладки в боковой панели</value>
</data>
<data name="Options_SidebarTabView_Description" xml:space="preserve">
<value>Показывать вкладки в Chat 2 как боковую панель вместо полосы в верхней части чата.</value>
<value>Показывать вкладки в {0} как боковую панель вместо полосы в верхней части чата.</value>
</data>
<data name="Options_PrettierTimestamps_Name" xml:space="preserve">
<value>Использовать современный формат времени</value>
@ -179,10 +179,10 @@
<value>Показывать заголовок для окна чата</value>
</data>
<data name="Options_Display_Tab" xml:space="preserve">
<value>Отображать</value>
<value>Внешний вид</value>
</data>
<data name="Options_ChatColours_Tab" xml:space="preserve">
<value>Цвет чата</value>
<value>Цвета чата</value>
</data>
<data name="Options_ChatColours_Reset" xml:space="preserve">
<value>Сбросить настройки</value>
@ -209,10 +209,10 @@
<value>Имя</value>
</data>
<data name="Options_Tabs_ShowTimestamps" xml:space="preserve">
<value>Показывать временные метки</value>
<value>Показать метки времени</value>
</data>
<data name="Options_Tabs_UnreadMode" xml:space="preserve">
<value>Режим непрочитанных</value>
<value>Режим отображения непрочитанных</value>
</data>
<data name="Options_Tabs_NoInputChannel" xml:space="preserve">
<value>&lt;Не выбран&gt;</value>
@ -224,7 +224,7 @@
<value>Каналы</value>
</data>
<data name="UnreadMode_All_Tooltip" xml:space="preserve">
<value>Всегда отображать метки непрочитанных сообщений.</value>
<value>Всегда отображать индикаторы непрочитанных сообщений.</value>
</data>
<data name="UnreadMode_Unseen_Tooltip" xml:space="preserve">
<value>Показывать индикаторы непрочитанных только для сообщений, которые вы не видели.</value>
@ -326,13 +326,13 @@
<value>Японский шрифт</value>
</data>
<data name="Options_Font_Description" xml:space="preserve">
<value>Шрифт Chat 2 для всех языков кроме японского.</value>
<value>Шрифт {0} для всех языков кроме японского.</value>
</data>
<data name="Options_Font_Warning" xml:space="preserve">
<value>Использование некоторых шрифтов может привести к крашу игры. Вы были предупреждены.</value>
</data>
<data name="Options_JapaneseFont_Description" xml:space="preserve">
<value>Шрифт Chat 2 для отображения японского текста.</value>
<value>Шрифт {0} для отображения японского текста.</value>
</data>
<data name="Options_Tabs_ChannelTypes_Special" xml:space="preserve">
<value>Особые</value>
@ -351,7 +351,23 @@
</data>
<data name="ChatLog_Tabs_Delete" xml:space="preserve">
<value>Удалить вкладку</value>
<comment>ChatLog_Tabs_Delete
Tooltip shown for a button in a tab context menu to delete the tab.</comment>
</data>
<data name="Options_HideWhenNotLoggedIn_Name" xml:space="preserve">
<value>Скрывать, когда не залогинен</value>
</data>
<data name="Options_HideWhenNotLoggedIn_Description" xml:space="preserve">
<value>Скрывать {0}, когда вы не вошли на персонажа.</value>
</data>
<data name="Tabs_Presets_General" xml:space="preserve">
<value>General</value>
</data>
<data name="Options_Tabs_Preset" xml:space="preserve">
<value>Preset: {0}</value>
</data>
<data name="Tabs_Presets_Event" xml:space="preserve">
<value>Event</value>
</data>
<data name="Options_Tabs_NewTab" xml:space="preserve">
<value>New tab</value>
</data>
</root>

View File

@ -24,6 +24,7 @@ internal sealed class Settings : IUiComponent {
new Ui.SettingsTabs.Fonts(this.Mutable),
new ChatColours(this.Mutable, this.Ui.Plugin),
new Tabs(this.Mutable),
new About(),
};
this.Ui.Plugin.CommandManager.AddHandler("/chat2", new CommandInfo(this.Command) {

View File

@ -0,0 +1,79 @@
using System.Diagnostics;
using System.Numerics;
using ChatTwo.Resources;
using ChatTwo.Util;
using Dalamud.Interface;
using ImGuiNET;
namespace ChatTwo.Ui.SettingsTabs;
internal sealed class About : ISettingsTab {
public string Name => Language.Options_About_Tab + "###tabs-about";
private readonly List<string> _translators = new() {
"Akizem",
"d0tiKs",
"Moonlight_Everlit",
"Dark32",
"andreycout",
"cassandra308",
"MKhayle",
"elena.space",
"ShivaInka",
"Risu64",
};
internal About() {
this._translators.Sort((a, b) => string.Compare(a.ToLowerInvariant(), b.ToLowerInvariant(), StringComparison.Ordinal));
}
public void Draw() {
ImGui.PushTextWrapPos();
ImGui.TextUnformatted(string.Format(Language.Options_About_Opening, Plugin.PluginName));
ImGui.Spacing();
if (ImGuiUtil.IconButton(FontAwesomeIcon.ExternalLinkAlt, "clickup")) {
Process.Start(new ProcessStartInfo("https://sharing.clickup.com/b/h/6-122378074-2/1047d21a39a4140") {
UseShellExecute = true,
});
}
ImGui.SameLine();
ImGui.TextUnformatted(Language.Options_About_ClickUp);
if (ImGuiUtil.IconButton(FontAwesomeIcon.ExternalLinkAlt, "crowdin")) {
Process.Start(new ProcessStartInfo("https://crowdin.com/project/chat-2") {
UseShellExecute = true,
});
}
ImGui.SameLine();
ImGui.TextUnformatted(string.Format(Language.Options_About_CrowdIn, Plugin.PluginName));
ImGui.Spacing();
var height = ImGui.GetContentRegionAvail().Y
- ImGui.CalcTextSize("A").Y
- ImGui.GetStyle().ItemSpacing.Y * 2;
if (ImGui.BeginChild("about", new Vector2(-1, height))) {
if (ImGui.TreeNodeEx(Language.Options_About_Translators)) {
if (ImGui.BeginChild("translators")) {
foreach (var translator in this._translators) {
ImGui.TextUnformatted(translator);
}
ImGui.EndChild();
}
ImGui.TreePop();
}
ImGui.EndChild();
}
ImGuiUtil.HelpText($"{Plugin.PluginName} v{this.GetType().Assembly.GetName().Version?.ToString(3)}");
ImGui.PopTextWrapPos();
}
}