diff --git a/GameEngine/Lang/en.php b/GameEngine/Lang/en.php index cdcaf143..4812f169 100755 --- a/GameEngine/Lang/en.php +++ b/GameEngine/Lang/en.php @@ -2339,6 +2339,26 @@ tz_def('TZ_RT_VALLEY_OCCUPIED', "Settling failed (valley occupied)"); tz_def('TZ_NEW_VILLAGE_MSG', "You have founded a new village:"); tz_def('TZ_VALLEY_OCCUPIED_MSG', "Your settlers could not settle here - the valley is already occupied by another player. They are on their way back."); +// ===== player profile page (#189) ===== +tz_def('AGE', 'Age'); +tz_def('CAPITAL_TAG', 'Capital'); +tz_def('WRITE_MESSAGE_UNAVAILABLE', 'Write message not available'); +tz_def('PROFILE_FLAG_ADMIN', 'This player is Admin.'); +tz_def('PROFILE_FLAG_MULTIHUNTER', 'This player is Multihunter.'); +tz_def('PROFILE_FLAG_BANNED', 'This player is BANNED.'); +tz_def('PROFILE_FLAG_VACATION', 'This player is on VACATION.'); + +// ===== in-game manual overview page (#189) ===== +tz_def('BUILDINGS', 'Buildings'); +tz_def('INFRASTRUCTURE', 'Infrastructure'); +tz_def('FORWARD', 'forward'); +tz_def('NEW_FEATURES', 'New features'); +tz_def('NEW_WINDOW', 'new window'); +tz_def('MANUAL_INTRO', 'This ingame help offers you the chance to look up important information at any time.'); +tz_def('MANUAL_NEW_FEATURES_DESC', 'These are new features that you will not find in the real version of the game Travian T3.6. Here you can get acquainted with all new features in more detail.'); +tz_def('MANUAL_FAQ', 'Travian FAQ'); +tz_def('MANUAL_FAQ_DESC', 'This ingame help just gives you brief information. More information is available at the'); + // ===== display-time localization of stored report topics ===== // Reports are generated server-side at battle resolution and stored in the DB // (column `topic`) with English connectors. This rewrites them to the viewing diff --git a/GameEngine/Lang/fr.php b/GameEngine/Lang/fr.php index 5f8a77fa..6f91dd5c 100644 --- a/GameEngine/Lang/fr.php +++ b/GameEngine/Lang/fr.php @@ -2342,4 +2342,24 @@ define('TZ_RT_VALLEY_OCCUPIED', "Colonisation échouée (vallée occupée)"); define('TZ_NEW_VILLAGE_MSG', "Vous avez fondé un nouveau village :"); define('TZ_VALLEY_OCCUPIED_MSG', "Vos colons n'ont pas pu s'installer ici — la vallée est déjà occupée par un autre joueur. Ils sont sur le chemin du retour."); +// ===== profil du joueur (#189) ===== +define('AGE', 'Âge'); +define('CAPITAL_TAG', 'Capitale'); +define('WRITE_MESSAGE_UNAVAILABLE', 'Écrire un message non disponible'); +define('PROFILE_FLAG_ADMIN', 'Ce joueur est Administrateur.'); +define('PROFILE_FLAG_MULTIHUNTER', 'Ce joueur est Multihunter.'); +define('PROFILE_FLAG_BANNED', 'Ce joueur est BANNI.'); +define('PROFILE_FLAG_VACATION', 'Ce joueur est en VACANCES.'); + +// ===== page d'accueil du manuel en jeu (#189) ===== +define('BUILDINGS', 'Bâtiments'); +define('INFRASTRUCTURE', 'Infrastructure'); +define('FORWARD', 'suivant'); +define('NEW_FEATURES', 'Nouveautés'); +define('NEW_WINDOW', 'nouvelle fenêtre'); +define('MANUAL_INTRO', 'Cette aide en jeu vous permet de consulter des informations importantes à tout moment.'); +define('MANUAL_NEW_FEATURES_DESC', "Ce sont des nouveautés que vous ne trouverez pas dans la version originale du jeu Travian T3.6. Vous pouvez ici découvrir toutes ces nouveautés en détail."); +define('MANUAL_FAQ', 'FAQ Travian'); +define('MANUAL_FAQ_DESC', "Cette aide en jeu ne donne que de brèves informations. Plus d'informations sont disponibles sur le"); + ?> diff --git a/GameEngine/Lang/it.php b/GameEngine/Lang/it.php index 0f9ff5fb..fa84c181 100755 --- a/GameEngine/Lang/it.php +++ b/GameEngine/Lang/it.php @@ -2228,4 +2228,24 @@ define('TZ_RT_VALLEY_OCCUPIED', "Colonizzazione fallita (valle occupata)"); define('TZ_NEW_VILLAGE_MSG', "Hai fondato un nuovo villaggio:"); define('TZ_VALLEY_OCCUPIED_MSG', "I tuoi coloni non hanno potuto insediarsi qui — la valle è già occupata da un altro giocatore. Stanno tornando indietro."); +// ===== profilo del giocatore (#189) ===== +define('AGE', 'Età'); +define('CAPITAL_TAG', 'Capitale'); +define('WRITE_MESSAGE_UNAVAILABLE', 'Invio messaggio non disponibile'); +define('PROFILE_FLAG_ADMIN', 'Questo giocatore è Amministratore.'); +define('PROFILE_FLAG_MULTIHUNTER', 'Questo giocatore è Multihunter.'); +define('PROFILE_FLAG_BANNED', 'Questo giocatore è BANNATO.'); +define('PROFILE_FLAG_VACATION', 'Questo giocatore è in VACANZA.'); + +// ===== pagina principale del manuale di gioco (#189) ===== +define('BUILDINGS', 'Edifici'); +define('INFRASTRUCTURE', 'Infrastruttura'); +define('FORWARD', 'avanti'); +define('NEW_FEATURES', 'Novità'); +define('NEW_WINDOW', 'nuova finestra'); +define('MANUAL_INTRO', "Questo aiuto di gioco ti permette di consultare informazioni importanti in qualsiasi momento."); +define('MANUAL_NEW_FEATURES_DESC', "Queste sono novità che non troverai nella versione reale del gioco Travian T3.6. Qui puoi conoscere tutte le novità in dettaglio."); +define('MANUAL_FAQ', 'FAQ Travian'); +define('MANUAL_FAQ_DESC', "Questo aiuto di gioco fornisce solo brevi informazioni. Maggiori informazioni sono disponibili sul"); + ?> diff --git a/GameEngine/Lang/ro.php b/GameEngine/Lang/ro.php index 751329af..51ca3185 100644 --- a/GameEngine/Lang/ro.php +++ b/GameEngine/Lang/ro.php @@ -2330,3 +2330,23 @@ define('TZ_RT_NEW_VILLAGE', "Sat nou întemeiat"); define('TZ_RT_VALLEY_OCCUPIED', "Colonizare eșuată (vale ocupată)"); define('TZ_NEW_VILLAGE_MSG', "Ai întemeiat un sat nou:"); define('TZ_VALLEY_OCCUPIED_MSG', "Coloniștii tăi nu s-au putut stabili aici — valea este deja ocupată de alt jucător. Se întorc acasă."); + +// ===== profilul jucătorului (#189) ===== +define('AGE', 'Vârstă'); +define('CAPITAL_TAG', 'Capitală'); +define('WRITE_MESSAGE_UNAVAILABLE', 'Trimitere mesaj indisponibilă'); +define('PROFILE_FLAG_ADMIN', 'Acest jucător este Administrator.'); +define('PROFILE_FLAG_MULTIHUNTER', 'Acest jucător este Multihunter.'); +define('PROFILE_FLAG_BANNED', 'Acest jucător este BANAT.'); +define('PROFILE_FLAG_VACATION', 'Acest jucător este în VACANȚĂ.'); + +// ===== pagina principală a manualului din joc (#189) ===== +define('BUILDINGS', 'Clădiri'); +define('INFRASTRUCTURE', 'Infrastructură'); +define('FORWARD', 'înainte'); +define('NEW_FEATURES', 'Funcții noi'); +define('NEW_WINDOW', 'fereastră nouă'); +define('MANUAL_INTRO', 'Acest ajutor din joc îți oferă posibilitatea de a consulta informații importante oricând.'); +define('MANUAL_NEW_FEATURES_DESC', "Acestea sunt funcții noi pe care nu le vei găsi în versiunea reală a jocului Travian T3.6. Aici te poți familiariza cu toate funcțiile noi în detaliu."); +define('MANUAL_FAQ', 'Întrebări frecvente Travian'); +define('MANUAL_FAQ_DESC', "Acest ajutor din joc îți oferă doar informații scurte. Mai multe informații sunt disponibile pe"); diff --git a/GameEngine/Lang/zh.php b/GameEngine/Lang/zh.php index a707cd3a..74373947 100644 --- a/GameEngine/Lang/zh.php +++ b/GameEngine/Lang/zh.php @@ -2323,3 +2323,23 @@ define('TZ_RT_NEW_VILLAGE', "已建立新村庄"); define('TZ_RT_VALLEY_OCCUPIED', "拓殖失败(山谷已被占领)"); define('TZ_NEW_VILLAGE_MSG', "你已建立一个新村庄:"); define('TZ_VALLEY_OCCUPIED_MSG', "你的拓荒者无法在此定居——该山谷已被其他玩家占领。他们正在返回途中。"); + +// ===== 玩家资料页 (#189) ===== +define('AGE', '年龄'); +define('CAPITAL_TAG', '首都'); +define('WRITE_MESSAGE_UNAVAILABLE', '无法发送消息'); +define('PROFILE_FLAG_ADMIN', '该玩家是管理员。'); +define('PROFILE_FLAG_MULTIHUNTER', '该玩家是多账号猎人。'); +define('PROFILE_FLAG_BANNED', '该玩家已被封禁。'); +define('PROFILE_FLAG_VACATION', '该玩家处于度假模式。'); + +// ===== 游戏内手册首页 (#189) ===== +define('BUILDINGS', '建筑'); +define('INFRASTRUCTURE', '基础设施'); +define('FORWARD', '下一页'); +define('NEW_FEATURES', '新功能'); +define('NEW_WINDOW', '新窗口'); +define('MANUAL_INTRO', '此游戏内帮助让你随时查阅重要信息。'); +define('MANUAL_NEW_FEATURES_DESC', '这些是你在原版 Travian T3.6 游戏中找不到的新功能。你可以在此详细了解所有新功能。'); +define('MANUAL_FAQ', 'Travian 常见问题'); +define('MANUAL_FAQ_DESC', '此游戏内帮助仅提供简要信息。更多信息请访问'); diff --git a/GameEngine/Session.php b/GameEngine/Session.php index 34f81f35..be9c20ef 100755 --- a/GameEngine/Session.php +++ b/GameEngine/Session.php @@ -55,6 +55,11 @@ include_once("Generator.php"); include_once("Multisort.php"); include_once("Ranking.php"); include_once("Lang/" . LANG . ".php"); +// en.php is an idempotent fallback (tz_def only defines missing keys); loading +// it after the player language guarantees every interface constant is defined, +// so a key missing from a translation degrades to English instead of a PHP 8.3 +// "undefined constant" fatal (blank page). See issue #189. +include_once("Lang/en.php"); include_once("Logging.php"); include_once("Message.php"); include_once("Alliance.php"); diff --git a/Templates/Manual/00.tpl b/Templates/Manual/00.tpl index 590673ee..fe256d89 100644 --- a/Templates/Manual/00.tpl +++ b/Templates/Manual/00.tpl @@ -1,9 +1,9 @@
This ingame help offers you the chance to look up important information at any time.
+
-
+


\ No newline at end of file
diff --git a/Templates/Profile/menu.tpl b/Templates/Profile/menu.tpl
index 302e2247..0b8594a9 100644
--- a/Templates/Profile/menu.tpl
+++ b/Templates/Profile/menu.tpl
@@ -27,7 +27,7 @@ $sParam = isset($_GET['s']) ? (int)$_GET['s'] : null;
>
- Overview
+
|
@@ -35,7 +35,7 @@ $sParam = isset($_GET['s']) ? (int)$_GET['s'] : null;
>
- Profile
+
|
@@ -43,7 +43,7 @@ $sParam = isset($_GET['s']) ? (int)$_GET['s'] : null;
>
- Preferences
+
|
@@ -51,7 +51,7 @@ $sParam = isset($_GET['s']) ? (int)$_GET['s'] : null;
>
- Account
+
>
- Vacation
+
>
- Graphic pack
+
>
- Overview
+
|
diff --git a/Templates/Profile/overview.tpl b/Templates/Profile/overview.tpl
index b94d305d..fe7489b0 100644
--- a/Templates/Profile/overview.tpl
+++ b/Templates/Profile/overview.tpl
@@ -85,7 +85,7 @@ if ($uid == $session->uid) {