Add a Fluent based translation system.

This commit is contained in:
Matthias Mailänder
2021-04-24 12:39:06 +02:00
committed by teinarss
parent f1a9a5180d
commit 1f01d0b6b1
8 changed files with 169 additions and 1 deletions

View File

@@ -32,6 +32,8 @@ namespace OpenRA.Widgets
public static Widget KeyboardFocusWidget;
public static Widget MouseOverWidget;
internal static Translation Translation;
public static void CloseWindow()
{
if (WindowList.Count > 0)
@@ -155,6 +157,27 @@ namespace OpenRA.Widgets
HandleInput(new MouseInput(MouseInputEvent.Move, MouseButton.None,
Viewport.LastMousePos, int2.Zero, Modifiers.None, 0));
}
public static void InitializeTranslation()
{
Translation = new Translation(Game.Settings.Player.Language, Game.ModData.Manifest.Translations, Game.ModData.DefaultFileSystem);
}
public static string Translate(string key, IDictionary<string, object> args = null, string attribute = null)
{
if (Translation == null)
return null;
return Translation.GetFormattedMessage(key, args, attribute);
}
public static string TranslationAttribute(string key, string attribute = null)
{
if (Translation == null)
return null;
return Translation.GetAttribute(key, attribute);
}
}
public class ChromeLogic : IDisposable