Skip to content

Commit

Permalink
Added polish texts and outro
Browse files Browse the repository at this point in the history
  • Loading branch information
Pyrdacor committed Sep 6, 2023
1 parent 97cfaba commit 1b7aac4
Show file tree
Hide file tree
Showing 10 changed files with 638 additions and 431 deletions.
15 changes: 15 additions & 0 deletions Ambermoon.Core/CustomTexts.cs
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,21 @@ public enum Index
{ Index.GameLoaded, "La ~INK 22~sauvegarde {0}~INK 31~ a été chargée."},
{ Index.InitialGameLoaded, "La ~INK 22~sauvegarde initiale~INK 31~ a été chargée."}
}
},
{ GameLanguage.Polish, new Dictionary<Index, string>
{
{ Index.ReallyStartNewGame, "Czy naprawdę chcesz rozpocząć nową grę?" },
{ Index.FailedToLoadSavegame, "Nie udało się wczytać gry." },
{ Index.FailedToLoadInitialSavegame, "Nie udało się wczytać startowego stanu gry." },
{ Index.FailedToLoadSavegameUseInitial, "Nie udało się wczytać gry. Zamiast tego załadowano startowy zapis gry." },
{ Index.StartNewGameOrQuit, "Chcesz rozpocząć nową grę czy wyjść z gry?" },
{ Index.RuneTableUsage, "Tak długo, jak masz tabelę run w ekwipunku, wszystkie runy będą automatycznie wyświetlane jako tekst." },
{ Index.LoadCrashedGame, "Wykryto kopię awaryjną zapisu gry. Czy chcesz ją załadować?" },
{ Index.FailedToRemoveCrashSavegame, "Awaryjna kopia zapisu gry nie może zostać usunięta automatycznie. Należy to zrobić samodzielnie. Jest ona przechowywana w podkatalogu 'Save.99'." },
{ Index.GameSaved, "Zapisano jako ~INK 22~'{0}'~INK 31~."},
{ Index.GameLoaded, "~INK 22~Zapis {0}~INK 31~ został wczytany."},
{ Index.InitialGameLoaded, "~INK 22~Zapis startowy~INK 31~ został wczytany."}
}
}
};

Expand Down
16 changes: 16 additions & 0 deletions Ambermoon.Core/Render/CustomOutro.cs
Original file line number Diff line number Diff line change
Expand Up @@ -270,6 +270,22 @@ void ReduceVolume()
" ^~HERO~: Épatant !",
"Pyrdacor: Merci d'avoir joué à ~INK22~Ambermoon~INK31~ ! J'espère que vous vous êtes bien amusés."
}
},
{ GameLanguage.Polish, new List<string>
{
"Egil: To była niesamowita przygoda, ale teraz muszę się pożegnać.",
"Egil: Krasnoludy z Gemstone potrzebują ochotników do odbudowy swojej stolicy.",
"~HERO~: Mam nadzieję, że jeszcze się spotkamy. Udanej podróży przyjacielu!",
" ^~HERO~: ...",
" ^Nieznajomy: Nie tak szybko ~HERO~!",
" ^~HERO~: Kim jesteś?",
"Nieznajomy: Moje imię to ~INK17~Pyrdacor~INK31~. Nie mam zbyt wiele czasu.",
"Nieznajomy: Ale mogę powiedzieć jedno: Przygoda jeszcze się nie skończyła.",
" ^~HERO~: O czym ty mówisz?",
" ^Planowana jest ~INK17~Trzecia część trylogii Amber~INK31~.",
" ^~HERO~: Wspaniale!",
"Pyrdacor: Dziękuję za grę w ~INK22~Ambermoon~INK31~! Mam nadzieję, że dobrze się bawiliście."
}
}
};

Expand Down
25 changes: 24 additions & 1 deletion Ambermoon.Core/Tutorial.cs
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@ namespace Ambermoon
{
internal class Tutorial
{
// TODO: add other languages later
static readonly Dictionary<GameLanguage, string[]> texts = new Dictionary<GameLanguage, string[]>
{
{ GameLanguage.German, new string[]
Expand Down Expand Up @@ -105,6 +104,30 @@ internal class Tutorial
"le curseur en curseur d'action afin d'interagir avec des objets ou des personnages comme les PNJ.",
// End
"Maintenant, je suis silencieux. Amusez-vous bien avec Ambermoon !"
} },
{ GameLanguage.Polish, new string[]
{
// Introduction
"Cześć ~SELF~, witaj w Ambermoon Remake.^^Potrzebujesz małego wprowadzenia?",
// Tip 1
"Przyciski w prawym dolnym rogu ekranu zapewniają wiele przydatnych funkcji " +
"w grze. Na głównym ekranie można je przełączać , naciskając prawy " +
"przycisk myszki nad ich obszarem lub wciskając klawisz Return. To pokaże " +
"dodatkowe funkcje.",
// Tip 2
"Do obsługi tych przycisków możesz też użyć klawiatury numerycznej. Układ " +
"jest dokładnie taki sam jak przycisków w grze. Tak więc klawisz 7 odpowiada " +
"górnemu lewemu przyciskowi (oko).",
// Tip 3
"W górnej części znajdują się portrety postaci. Kliknięcie w jeden z nich wybiera " +
"aktywną postać a prawy klik otwiera ekwipunek. Z klawiatury, klawisze 1-6 wybierają " +
"aktywną postać a F1-F6 otworzą ekwipunek.",
// Tip 4
"Po mapie możesz się poruszać używając myszy, klawiszy W, A, S, D lub strzałek." +
"W widoku 2D prawy klik na mapie zmienia kursor w ikonę interakcji z obiektami " +
"lub postaciami takimi jak NPC.",
// End
"Teraz zamilknę. baw się dobrze grając w Ambermoon!"
} }
};

Expand Down
62 changes: 10 additions & 52 deletions Ambermoon.Core/UI/VersionSelector.cs
Original file line number Diff line number Diff line change
Expand Up @@ -318,48 +318,6 @@ void UpdateFlags()

Position GetFlagImageOffset(GameLanguage language, int textureFactor) => flagsTextureAtlas.GetOffset(1) + new Position((int)language * FlagWidth * textureFactor, 0); // TODO: maybe later the image has multiple rows

static string ProcessFrench(string text)
{
return text;
// There are glyph for the french letters but they really look ugly.
// Therefore we avoid them here by replacing them just by similar letters.
// I use this function instead of modifying the texts directly to keep
// the original letters here in code. Maybe later the font is improved.
return text
.Replace('à', 'a')
.Replace('â', 'a')
.Replace("æ", "ae")
.Replace('ç', 'c')
.Replace('è', 'e')
.Replace('é', 'e')
.Replace('ê', 'e')
.Replace('ë', 'e')
.Replace('î', 'i')
.Replace('ï', 'i')
.Replace('ô', 'o')
.Replace("œ", "oe")
.Replace('ù', 'u')
.Replace('û', 'u')
.Replace('ü', 'u')
.Replace('ÿ', 'y')
.Replace('À', 'A')
.Replace('Â', 'A')
.Replace("Æ", "Ae")
.Replace('Ç', 'C')
.Replace('È', 'E')
.Replace('É', 'E')
.Replace('Ê', 'E')
.Replace('Ë', 'E')
.Replace('Î', 'I')
.Replace('Ï', 'I')
.Replace('Ô', 'O')
.Replace("Œ", "Oe")
.Replace('Ù', 'U')
.Replace('Û', 'U')
.Replace('Ü', 'U')
.Replace('Ÿ', 'Y');
}

string GetLanguageText(GameLanguage gameLanguage)
{
return configuration.Language switch
Expand Down Expand Up @@ -422,17 +380,17 @@ string GetSavegameOptionText(int option)
return option == 0
? configuration.Language switch
{
GameLanguage.German => "Speichere beim Programm",
GameLanguage.French => ProcessFrench("Sauvegarder au programme"),
GameLanguage.Polish => "Zapis gry w ścieżce progr.",
_ => "Save games in program path"
GameLanguage.German => "Speichere beim Programm",
GameLanguage.French => "Sauvegarder au programme",
GameLanguage.Polish => "Zapis gry w ścieżce progr.",
_ => "Save games in program path"
}
: configuration.Language switch
{
GameLanguage.German => "Speichere bei den Daten",
GameLanguage.French => ProcessFrench("Sauvegarder aux données"),
GameLanguage.Polish => "Zapis gry w ścieżce danych",
_ => "Save games in data path"
GameLanguage.German => "Speichere bei den Daten",
GameLanguage.French => "Sauvegarder aux données",
GameLanguage.Polish => "Zapis gry w ścieżce danych",
_ => "Save games in data path"
};
}

Expand All @@ -444,7 +402,7 @@ string GetSavegameOptionTooltip(int option)
GameLanguage.German =>
"Spielstände werden neben der Ambermoon.net.exe im Unterorder 'Saves' gespeichert.",
GameLanguage.French =>
ProcessFrench("Les sauvegardes sont stockées à côté d'Ambermoon.net.exe dans le sous-dossier 'Saves'."),
"Les sauvegardes sont stockées à côté d'Ambermoon.net.exe dans le sous-dossier 'Saves'.",
GameLanguage.Polish =>
"Zapisane gry są przechowywane obok pliku Ambermoon.net.exe w podfolderze 'Saves'.",
_ =>
Expand All @@ -455,7 +413,7 @@ string GetSavegameOptionTooltip(int option)
GameLanguage.German =>
"Spielstände werden im Pfad der Originaldaten gespeichert und überschreiben die Originalspielstände!",
GameLanguage.French =>
ProcessFrench("Les sauvegardes sont stockées dans le chemin de données d'origine et peuvent écraser les sauvegardes d'origine!"),
"Les sauvegardes sont stockées dans le chemin de données d'origine et peuvent écraser les sauvegardes d'origine!",
GameLanguage.Polish =>
"Zapisane gry są przechowywane w oryginalnej ścieżce danych i mogą nadpisywać oryginalne zapisy!",
_ =>
Expand Down
Loading

0 comments on commit 1b7aac4

Please sign in to comment.