Merge main into strict

This commit is contained in:
Scott Anderson
2025-05-14 22:18:35 -04:00
22 changed files with 1715 additions and 178 deletions
+52
View File
@@ -15,6 +15,32 @@ map $uri $port {
~^/w12/ 3013; ~^/w12/ 3013;
~^/w13/ 3014; ~^/w13/ 3014;
~^/w14/ 3015; ~^/w14/ 3015;
~^/w15/ 3016;
~^/w16/ 3017;
~^/w17/ 3018;
~^/w18/ 3019;
~^/w19/ 3020;
~^/w20/ 3021;
~^/w21/ 3022;
~^/w22/ 3023;
~^/w23/ 3024;
~^/w24/ 3025;
~^/w25/ 3026;
~^/w26/ 3027;
~^/w27/ 3028;
~^/w28/ 3029;
~^/w29/ 3030;
~^/w30/ 3031;
~^/w31/ 3032;
~^/w32/ 3033;
~^/w33/ 3034;
~^/w34/ 3035;
~^/w35/ 3036;
~^/w36/ 3037;
~^/w37/ 3038;
~^/w38/ 3039;
~^/w39/ 3040;
~^/w40/ 3041;
default 3000; default 3000;
} }
@@ -235,6 +261,32 @@ server {
if ($worker = "12") { set $worker_port 3013; } if ($worker = "12") { set $worker_port 3013; }
if ($worker = "13") { set $worker_port 3014; } if ($worker = "13") { set $worker_port 3014; }
if ($worker = "14") { set $worker_port 3015; } if ($worker = "14") { set $worker_port 3015; }
if ($worker = "15") { set $worker_port 3016; }
if ($worker = "16") { set $worker_port 3017; }
if ($worker = "17") { set $worker_port 3018; }
if ($worker = "18") { set $worker_port 3019; }
if ($worker = "19") { set $worker_port 3020; }
if ($worker = "20") { set $worker_port 3021; }
if ($worker = "21") { set $worker_port 3022; }
if ($worker = "22") { set $worker_port 3023; }
if ($worker = "23") { set $worker_port 3024; }
if ($worker = "24") { set $worker_port 3025; }
if ($worker = "25") { set $worker_port 3026; }
if ($worker = "26") { set $worker_port 3027; }
if ($worker = "27") { set $worker_port 3028; }
if ($worker = "28") { set $worker_port 3029; }
if ($worker = "29") { set $worker_port 3030; }
if ($worker = "30") { set $worker_port 3031; }
if ($worker = "31") { set $worker_port 3032; }
if ($worker = "32") { set $worker_port 3033; }
if ($worker = "33") { set $worker_port 3034; }
if ($worker = "34") { set $worker_port 3035; }
if ($worker = "35") { set $worker_port 3036; }
if ($worker = "36") { set $worker_port 3037; }
if ($worker = "37") { set $worker_port 3038; }
if ($worker = "38") { set $worker_port 3039; }
if ($worker = "39") { set $worker_port 3040; }
if ($worker = "40") { set $worker_port 3041; }
proxy_pass http://127.0.0.1:$worker_port$2; proxy_pass http://127.0.0.1:$worker_port$2;
proxy_http_version 1.1; proxy_http_version 1.1;
+323
View File
@@ -0,0 +1,323 @@
{
"lang": {
"en": "Arabic",
"native": "العربية",
"svg": "ps",
"lang_code": "ar"
},
"main": {
"title": "OpentFront (النسخة الأولية)",
"join_discord": "انضم إلى \"Discord\"!",
"login_discord": "تسجيل الدخول عبر ديسكورد",
"logged_in": "تم تسجيل الدخول!",
"log_out": "تسجيل الخروج",
"create_lobby": "إنشاء لوبي",
"join_lobby": "انضمام للوبي",
"single_player": "لاعب فردي",
"instructions": "التعليمات",
"how_to_play": "كيفية اللعب",
"wiki": "الويكي"
},
"help_modal": {
"hotkeys": "اختصارات",
"table_key": "مفتاح",
"table_action": "إجراء",
"action_alt_view": "العرض البديل (تضاريس / دول)",
"action_attack_altclick": "هجوم (عند تفعيل النقر الأيسر للقائمة)",
"action_build": "فتح قائمة البناء",
"action_emote": "فتح قائمة الإيموجي",
"action_center": "تثبيت الكاميرا على اللاعب",
"action_zoom": "تكبير / تصغير",
"action_move_camera": "تحريك الكاميرا",
"action_ratio_change": "تعديل نسبة الهجوم",
"action_reset_gfx": "إعادة ضبط الرسوميات",
"ui_section": "واجهة اللعبة",
"ui_leaderboard": "ترتيب اللاعبين",
"ui_leaderboard_desc": "يعرض أفضل اللاعبين، نسبة الأرض، والذهب",
"ui_control": "لوحة التحكم",
"ui_control_desc": "تحتوي على:",
"ui_pop": "السكان - عدد الوحدات التي تمتلكها، الحد الأقصى للسكان، ومعدل اكتسابهم.",
"ui_gold": "الذهب",
"ui_troops_workers": "الجنود والعمال — جنود للهجوم / الدفاع، عمال لجمع الذهب",
"ui_attack_ratio": "نسبة الهجوم — تحكم بعدد الجنود في الهجوم",
"ui_options": "الإعدادات",
"ui_options_desc": "تحتوي على:",
"option_pause": "إيقاف / استئناف اللعبة",
"option_timer": "المؤقت",
"option_exit": "زر الخروج",
"option_settings": "إعدادات إضافية — وضع العرض، الوضع الليلي، الإيموجي، النقر الأيسر",
"radial_title": "القائمة الدائرية",
"radial_desc": "النقر اليمين (أو لمس) يفتح القائمة",
"radial_build": "فتح قائمة البناء",
"radial_info": "فتح قائمة المعلومات",
"radial_boat": "إرسال قارب للهجوم",
"radial_close": "إغلاق القائمة",
"info_title": "قائمة المعلومات",
"info_enemy_desc": "تحتوي على اسم اللاعب، الذهب، الجنود، وحالة الخيانة. الخائن هو من يهاجم حليفًا. الرموز تعني:",
"info_target": "تحديد كهدف - يظهر لكل الحلفاء لتنسيق الهجمات",
"info_alliance": "طلب تحالف - يمكن تبادل الموارد ولا يمكن الهجوم",
"info_emoji": "إرسال إيموجي للاعب",
"info_ally_panel": "معلومات الحليف",
"info_ally_desc": "بعد التحالف، تظهر رموز جديدة:",
"ally_betray": "خُن حليفك، مُنهيًا التحالف. ستظهر بجانب اسمك أيقونة مؤقتة (إلا إذا كانت الدولة الأخرى خائنة أيضًا). لمدة 30 ثانية، ينخفض دفاعك بنسبة 50%. ستُقلل الهجمات عليك من خسائر المهاجم حتى نهاية المدة، كما تقل احتمالية تحالف الروبوتات معك، وسيُفكر اللاعبون مليًا قبل فعل ذلك.",
"ally_donate": "تبرع بالجنود — لدعم الحليف أثناء الهجوم",
"build_menu_title": "قائمة البناء",
"build_name": "الاسم",
"build_icon": "الأيقونة",
"build_desc": "الوصف",
"build_city": "مدينة",
"build_city_desc": "زيادة الحد الأقصى للسكان بمقدار 25,000، مفيدة إذا كنت غير قادر على التوسع.",
"build_defense": "نقطة دفاع",
"build_defense_desc": "تقوية الدفاعات على الحدود المجاورة",
"build_port": "ميناء",
"build_port_desc": "سفن تجارة تلقائية. يسمح ببناء سفن حربية. يجب بناؤه قرب الماء.",
"build_warship": "سفينة حربية",
"build_warship_desc": "يتمركز في منطقة، يلتقط سفن التجارة ويدمر السفن الحربية والزوارق المعادية. يظهر من أقرب ميناء ويتجول في المنطقة التي نقرت عليها أولاً لبنائها. يمكنك التحكم في السفن الحربية عن طريق النقر عليها للهجوم، ثم النقر على المنطقة الجديدة التي ترغب في تحركها إليها.\n",
"build_silo": "منصة صواريخ",
"build_silo_desc": "تسمح بإطلاق الصواريخ.",
"build_sam": "معترضة صواريخ",
"build_sam_desc": "لديها فرصة بنسبة 75% لاعتراض صواريخ العدو في نطاق 100 بكسل. المعترضة لديها فترة إعادة شحن مدتها 7.5 ثوان ولا يمكنها اعتراض MIRV.",
"build_atom": "قنبلة ذرية",
"build_atom_desc": "قنبلة متفجرة صغيرة تدمر الأراضي والمباني والسفن والقوارب. تنطلق من أقرب منصة صواريخ وتسقط في المنطقة التي نقرت عليها أولاً لبنائها.",
"build_hydrogen": "قنبلة هيدروجينية",
"build_hydrogen_desc": "قنبلة شديدة التدمير لمساحة أكبر.",
"build_mirv": "MIRV",
"build_mirv_desc": "أقوى قنبلة في اللعبة. تنقسم إلى قنابل أصغر تغطي نطاقًا واسعًا جدًا من الأراضي. لا تُلحق الضرر إلا باللاعب الذي نقرتَ عليه أولاً عند بنائها. تنطلق من أقرب منصة صواريخ وتسقط في المنطقة التي نقرتَ عليها أولاً لبنائها.",
"player_icons": "رموز اللاعبين",
"icon_desc": "شرح بعض رموز اللعبة:",
"icon_crown": "تاج - اللاعب رقم 1",
"icon_traitor": "سيفين متقاطعين - خائن",
"icon_ally": "مصافحة - حليف",
"info_enemy_panel": "معلومات عن العدو"
},
"single_modal": {
"title": "لاعب فردي",
"allow_alliances": "السماح بالتحالفات",
"options_title": "خيارات",
"bots": "البوتات:",
"bots_disabled": "معطل",
"disable_nations": "تعطيل الدول",
"instant_build": "بناء فوري",
"infinite_gold": "ذهب غير محدود",
"infinite_troops": "جنود غير محدودين",
"disable_nukes": "تعطيل الأسلحة النووية",
"enables_title": "تفعيل الإعدادات",
"start": "بدء اللعبة"
},
"map": {
"map": "الخريطة",
"world": "العالم",
"europe": "أوروبا",
"mena": "الشرق الأوسط وشمال أفريقيا",
"northamerica": "أمريكا الشمالية",
"oceania": "أوقيانوسيا",
"blacksea": "البحر الأسود",
"africa": "أفريقيا",
"asia": "آسيا",
"mars": "المريخ",
"southamerica": "أمريكا الجنوبية",
"britannia": "بريطانيا",
"gatewaytotheatlantic": "بوابة الأطلسي",
"australia": "أستراليا",
"random": "عشوائي",
"iceland": "آيسلندا",
"pangaea": "بانجيا",
"japan": "اليابان والجيران",
"betweentwoseas": "بين بحرين",
"knownworld": "العالم المعروف",
"faroeislands": "جزر فارو",
"deglaciatedantarctica": "أنتاركتيكا بدون جليد",
"europeclassic": "أوروبا (الكلاسيكية)",
"falklandislands": "جزر فوكلاند",
"baikal": "بايكال"
},
"map_categories": {
"continental": "قاري",
"regional": "إقليمي",
"fantasy": "خيالي"
},
"private_lobby": {
"title": "الانضمام إلى لوبي خاص",
"enter_id": "أدخل رقم اللوبي",
"player": "لاعب",
"players": "لاعبين",
"join_lobby": "انضمام للوبي",
"checking": "جار التحقق من اللوبي...",
"not_found": "لم يتم العثور على اللوبي. تحقق من الرقم وحاول مرة أخرى.",
"error": "حدث خطأ. حاول مجددًا.",
"joined_waiting": "...تم الانضمام! بانتظار بدء اللعبة"
},
"public_lobby": {
"join": "الانضمام للعبة القادمة",
"waiting": "اللاعبين المنتظرين",
"teams": "فرق {num}"
},
"username": {
"enter_username": "أدخل اسم المستخدم",
"not_string": ".يجب أن يكون الاسم نصًا",
"too_short": ".الاسم يجب أن يحتوي على {min} حروف على الأقل",
"too_long": ".الاسم يجب ألا يتجاوز {max} حرفًا",
"invalid_chars": ".يمكن للاسم أن يحتوي فقط على حروف، أرقام، فراغات، شرطات سفلية، و[أقواس مربعة]"
},
"host_modal": {
"title": "لوبي خاص",
"mode": "الوضع",
"team_count": "عدد الفرق",
"options_title": "خيارات",
"bots": "البوتات: ",
"bots_disabled": "معطل",
"disable_nations": "تعطيل الدول",
"instant_build": "بناء فوري",
"infinite_gold": "ذهب غير محدود",
"infinite_troops": "جنود غير محدودين",
"enables_title": "تفعيل الإعدادات",
"player": "لاعب",
"players": "لاعبين",
"waiting": "بانتظار اللاعبين...",
"start": "بدء اللعبة"
},
"game_starting_modal": {
"title": "...يتم بدء اللعبة",
"desc": "جارٍ التحضير لبدء اللوبي. يرجى الانتظار."
},
"difficulty": {
"difficulty": "الصعوبة",
"Relaxed": "سهل",
"Balanced": "متوسط",
"Intense": "صعب",
"Impossible": "مستحيل"
},
"game_mode": {
"ffa": "الكل ضد الكل",
"teams": "فرق"
},
"select_lang": {
"title": "اختر اللغة"
},
"unit_type": {
"city": "مدينة",
"defense_post": "نقطة دفاع",
"port": "ميناء",
"warship": "سفينة حربية",
"missile_silo": "منصة صواريخ",
"sam_launcher": "قاذف صواريخ مضادة",
"atom_bomb": "قنبلة نووية",
"hydrogen_bomb": "قنبلة هيدروجينية",
"mirv": "MIRV"
},
"user_setting": {
"title": "إعدادات المستخدم",
"tab_basic": "الإعدادات الأساسية",
"tab_keybinds": "اختصارات المفاتيح",
"dark_mode_label": "🌙 الوضع الليلي",
"dark_mode_desc": "التبديل بين المظهر الفاتح والداكن للموقع",
"emojis_label": "😊 الإيموجيز",
"emojis_desc": "تبديل ما إذا كانت الرموز التعبيرية تظهر في اللعبة",
"anonymous_names_label": "🥷 الأسماء المخفية",
"anonymous_names_desc": "إخفاء أسماء اللاعبين الحقيقية باستخدام أسماء عشوائية على شاشتك",
"left_click_label": "🖱️ النقر الأيسر لفتح القائمة",
"left_click_desc": "عند التفعيل، النقر الأيسر يفتح القائمة وزر السيف للهجوم. عند التعطيل، النقر الأيسر يهاجم مباشرة",
"attack_ratio_label": "⚔️ نسبة الهجوم",
"attack_ratio_desc": "نسبة القوات المُرسلة في الهجوم (1–100%)",
"troop_ratio_label": "🪖🛠️ نسبة الجنود والعمال",
"troop_ratio_desc": "ضبط التوازن بين الجنود (للقتال) والعمال (لإنتاج الذهب) (1-100%)",
"easter_writing_speed_label": "مضاعف سرعة الكتابة",
"easter_writing_speed_desc": "ضبط سرعة تظاهرك بالبرمجة (100x-1x)",
"easter_bug_count_label": "عدد الأخطاء",
"easter_bug_count_desc": "عدد الأخطاء البرمجية التي تقبل بها (0-1000، عاطفياً)",
"view_options": "خيارات العرض",
"toggle_view": "تبديل العرض",
"toggle_view_desc": "عرض بديل (تضاريس/دول)",
"zoom_controls": "التحكم بالتكبير",
"zoom_out": "تصغير",
"zoom_out_desc": "تصغير الخريطة",
"zoom_in": "تكبير",
"zoom_in_desc": "تكبير الخريطة",
"camera_movement": "حركة الكاميرا",
"center_camera": "توسيط الكاميرا",
"center_camera_desc": "توسيط الكاميرا على اللاعب",
"move_up": "تحريك الكاميرا للأعلى",
"move_up_desc": "تحريك الكاميرا نحو الأعلى",
"move_left": "تحريك الكاميرا لليسار",
"move_left_desc": "تحريك الكاميرا نحو اليسار",
"move_down": "تحريك الكاميرا للأسفل",
"move_down_desc": "تحريك الكاميرا نحو الأسفل",
"move_right": "تحريك الكاميرا لليمين",
"move_right_desc": "تحريك الكاميرا نحو اليمين",
"reset": "إعادة تعيين",
"unbind": "إلغاء الربط"
},
"chat": {
"title": "الدردشة السريعة",
"to": "أرسل {user}: {msg}",
"from": "من {user}: {msg}",
"category": "الفئة",
"phrase": "العبارة",
"player": "اللاعب",
"send": "إرسال",
"search": "البحث عن لاعب...",
"build": "بناء رسالتك...",
"cat": {
"help": "مساعدة",
"attack": "هجوم",
"defend": "دفاع",
"greet": "تحيات",
"misc": "متنوع",
"warnings": "تحذيرات"
},
"help": {
"troops": "أرجو إرسال قوات!",
"gold": "أرجو إرسال ذهب!",
"no_attack": "رجاءً لا تهاجمني!",
"sorry_attack": "عذراً، لم أقصد الهجوم.",
"alliance": "تحالف؟",
"help_defend": "ساعدني في الدفاع ضد [P1]!",
"team_up": "لنتحد ضد [P1]!"
},
"attack": {
"attack": "هاجم [P1]!",
"mirv": "اطلق MIRV على [P1]!",
"focus": "ركز النار على [P1]!",
"finish": "دعونا ننهي [P1]!"
},
"defend": {
"defend": "دافع عن [P1]!",
"dont_attack": "لا تهاجم [P1]!",
"ally": "[P1] حليفي!"
},
"greet": {
"hello": "مرحبًا!",
"good_luck": "حظاً موفقاً!",
"have_fun": "استمتع!",
"gg": "GG!",
"nice_to_meet": "سعيد بلقائك!",
"well_played": "لعبت بشكل جيد!",
"hi_again": "مرحبا مجددا!",
"bye": "وداعا!",
"thanks": "شكرًا!",
"oops": "عفواً، زر خاطئ!",
"trust_me": "يمكنك أن تثق بي. وعد!",
"trust_broken": "لقد ثقت بك..."
},
"misc": {
"go": "هيا!",
"strategy": "استراتيجية جميلة!",
"fun": "هذه اللعبة ممتعة!",
"pr": "متى سيتم دمج طلب السحب الخاص بي...؟"
},
"warnings": {
"strong": "[P1] قوي.",
"weak": "[P1] ضعيف.",
"mirv_soon": "[P1] يمكنه إطلاق MIRV قريبا!",
"number1_warning": "اللاعب 1# سيفوز قريبا إلا إذا تحالفنا!",
"stalemate": "دعنا نعقد سلامًا. هذا طريق مسدود، وسنخسر كلانا.",
"has_allies": "لدى [P1] العديد من الحلفاء",
"no_allies": "[P1] ليس لديه حلفاء.",
"betrayed": "[P1] خان حليفه!",
"getting_big": "[P1] ينمو بسرعة كبيرة!",
"danger_base": "[P1] غير محمي!",
"saving_for_mirv": "[P1] يدخر لإطلاق MIRV!",
"mirv_ready": "[P1] يمتلك الذهب الكافي لإطلاق MIRV!"
}
}
}
+101 -7
View File
@@ -8,6 +8,9 @@
"main": { "main": {
"title": "ОпенФронт (Алфа)", "title": "ОпенФронт (Алфа)",
"join_discord": "Влез в Дискорд!", "join_discord": "Влез в Дискорд!",
"login_discord": "Влез с Дискорд",
"logged_in": "Влезли сте!",
"log_out": "Излез от профила си",
"create_lobby": "Създай частна игра", "create_lobby": "Създай частна игра",
"join_lobby": "Присъединяване към частна игра", "join_lobby": "Присъединяване към частна игра",
"single_player": "Самостоятелна игра", "single_player": "Самостоятелна игра",
@@ -98,6 +101,7 @@
"infinite_gold": "Безкрайно злато", "infinite_gold": "Безкрайно злато",
"infinite_troops": "Безкрайна популация", "infinite_troops": "Безкрайна популация",
"disable_nukes": "Изключване на ядрени оръжия", "disable_nukes": "Изключване на ядрени оръжия",
"enables_title": "Активиране на настройки",
"start": "Започване на игра" "start": "Започване на игра"
}, },
"map": { "map": {
@@ -122,7 +126,15 @@
"betweentwoseas": "Между Две Морета", "betweentwoseas": "Между Две Морета",
"knownworld": "Познат Свят", "knownworld": "Познат Свят",
"faroeislands": "Фарьорски острови", "faroeislands": "Фарьорски острови",
"europeclassic": "Европа (класическа)" "deglaciatedantarctica": "Обезледена Антарктика",
"europeclassic": "Европа (класическа)",
"falklandislands": "Фолкландски острови",
"baikal": "Байкал"
},
"map_categories": {
"continental": "Континентално",
"regional": "Регионално",
"fantasy": "Друго"
}, },
"private_lobby": { "private_lobby": {
"title": "Присъединяване към частна игра", "title": "Присъединяване към частна игра",
@@ -137,7 +149,8 @@
}, },
"public_lobby": { "public_lobby": {
"join": "Присъединяване към следващата игра", "join": "Присъединяване към следващата игра",
"waiting": "чакащи играчи" "waiting": "чакащи играчи",
"teams": "{num} отбора"
}, },
"username": { "username": {
"enter_username": "Въведете потребителско име", "enter_username": "Въведете потребителско име",
@@ -157,7 +170,7 @@
"instant_build": "Незабавно построяване", "instant_build": "Незабавно построяване",
"infinite_gold": "Безкрайно злато", "infinite_gold": "Безкрайно злато",
"infinite_troops": "Безкрайна популация", "infinite_troops": "Безкрайна популация",
"disable_nukes": "Изключване на ядрени оръжия", "enables_title": "Активиране на настройки",
"player": "Играч", "player": "Играч",
"players": "Играчи", "players": "Играчи",
"waiting": "Изчакване на играчи...", "waiting": "Изчакване на играчи...",
@@ -181,6 +194,17 @@
"select_lang": { "select_lang": {
"title": "Изберете език" "title": "Изберете език"
}, },
"unit_type": {
"city": "Град",
"defense_post": "Отбранителен пост",
"port": "Пристанище",
"warship": "Боен кораб",
"missile_silo": "Ракетен силоз",
"sam_launcher": "Ракетна установка земя-въздух SAM",
"atom_bomb": "Атомна бомба",
"hydrogen_bomb": "Водородна бомба",
"mirv": "МИРВ"
},
"user_setting": { "user_setting": {
"title": "Потребителски настройки", "title": "Потребителски настройки",
"tab_basic": "Базови настройки", "tab_basic": "Базови настройки",
@@ -189,6 +213,8 @@
"dark_mode_desc": "Превключване на изгледа на сайта между светъл и тъмен режим", "dark_mode_desc": "Превключване на изгледа на сайта между светъл и тъмен режим",
"emojis_label": "😊 Емоджита", "emojis_label": "😊 Емоджита",
"emojis_desc": "Превключване дали емоджита да се показват в игра", "emojis_desc": "Превключване дали емоджита да се показват в игра",
"anonymous_names_label": "🥷 Скрити имена",
"anonymous_names_desc": "Скриване на истинските имена на играчите с произволни такива на екрана ти.",
"left_click_label": "🖱️ Щтракване на ляв бутон, за да се отвори менюто", "left_click_label": "🖱️ Щтракване на ляв бутон, за да се отвори менюто",
"left_click_desc": "Когато е ВКЛЮЧЕНО, щракването с ляв бутон отваря менюто и атаките се извършват чрез бутона на меч. Когато е ИЗКЛЮЧЕНО, щракването с ляв бутон атакува директно.", "left_click_desc": "Когато е ВКЛЮЧЕНО, щракването с ляв бутон отваря менюто и атаките се извършват чрез бутона на меч. Когато е ИЗКЛЮЧЕНО, щракването с ляв бутон атакува директно.",
"attack_ratio_label": "⚔️ Съотношение на атака", "attack_ratio_label": "⚔️ Съотношение на атака",
@@ -221,9 +247,77 @@
"reset": "Нулиране", "reset": "Нулиране",
"unbind": "Освобождаване" "unbind": "Освобождаване"
}, },
"map_categories": { "chat": {
"continental": "Континентално", "title": "Бърз чат",
"regional": "Регионално", "to": "Изпратено на {user}: {msg}",
"fantasy": "Друго" "from": "От {user}: {msg}",
"category": "Категория",
"phrase": "Фраза",
"player": "Играч",
"send": "Изпращане",
"search": "Търсене на играч...",
"build": "Построй своето съобщение...",
"cat": {
"help": "Помощ",
"attack": "Атака",
"defend": "Отбрана",
"greet": "Поздрави",
"misc": "Други",
"warnings": "Предупреждения"
},
"help": {
"troops": "Моля, дай ми войници!",
"gold": "Моля, дай ми злато!",
"no_attack": "Моля, не ме атакувай!",
"sorry_attack": "Съжалявам, не исках да атакувам.",
"alliance": "Съюз?",
"help_defend": "Помогни ми да се защитя срещу [P1]!",
"team_up": "Хайде да се съюзим срещу [P1]!"
},
"attack": {
"attack": "Атакувай [P1]!",
"mirv": "Изстреляй МИРВ срещу [P1]!",
"focus": "Фокусирай огън срещу [P1]!",
"finish": "Хайде да довършим [P1]!"
},
"defend": {
"defend": "Защитавай [P1]!",
"dont_attack": "Не атакувай [P1]!",
"ally": "[P1] ми е съюзник!"
},
"greet": {
"hello": "Здравей!",
"good_luck": "Успех!",
"have_fun": "Забавлявай се!",
"gg": "Добра игра!",
"nice_to_meet": "Приятно ми е да се запознаем!",
"well_played": "Добре изиграно!",
"hi_again": "Здравей отново!",
"bye": "Чао!",
"thanks": "Благодаря!",
"oops": "Опа, грешен бутон!",
"trust_me": "Можеш да ми се довериш. Честно!",
"trust_broken": "Доверих ти се..."
},
"misc": {
"go": "Хайде!",
"strategy": "Добра стратегия!",
"fun": "Тази игра е забавна!",
"pr": "Кога най-накрая ще бъде обединен моят PR...?"
},
"warnings": {
"strong": "[P1] е силен.",
"weak": "[P1] е слаб.",
"mirv_soon": "[P1] може скоро да изстреля МИРВ!",
"number1_warning": "Играч #1 ще спечели скоро, освен ако не се съюзим!",
"stalemate": "Хайде да се ​​помирим. Това е патово положение, и двамата ще загубим.",
"has_allies": "[P1] има много съюзници.",
"no_allies": "[P1] няма съюзници.",
"betrayed": "[P1] предаде съюзника си!",
"getting_big": "[P1] расте твърде бързо!",
"danger_base": "[P1] не е защитен!",
"saving_for_mirv": "[P1] спестява, за да изстреля МИРВ.",
"mirv_ready": "[P1] има достатъчно злато, за да изстреля MIRV!"
}
} }
} }
+114 -20
View File
@@ -8,8 +8,11 @@
"main": { "main": {
"title": "OpenFront (ALFA)", "title": "OpenFront (ALFA)",
"join_discord": "Kunigu la Discord-servilon !", "join_discord": "Kunigu la Discord-servilon !",
"create_lobby": "Krei salonon", "login_discord": "Ensaluti kun Diskordo",
"join_lobby": "Kunigi salonon", "logged_in": "Ensalutinta!",
"log_out": "Elsaluti",
"create_lobby": "Krei Ludejon",
"join_lobby": "Kunigi Ludejon",
"single_player": "Sola Ludanto", "single_player": "Sola Ludanto",
"instructions": "Instrukcioj", "instructions": "Instrukcioj",
"how_to_play": "Kiel ludi", "how_to_play": "Kiel ludi",
@@ -33,8 +36,8 @@
"ui_leaderboard_desc": "Afiŝas la plej bonajn ludantojn kun iliaj nomoj, la % de la poseda teritorio kaj la oro.", "ui_leaderboard_desc": "Afiŝas la plej bonajn ludantojn kun iliaj nomoj, la % de la poseda teritorio kaj la oro.",
"ui_control": "Kontrolpanelo", "ui_control": "Kontrolpanelo",
"ui_control_desc": "La kontrolpanelo enhavas la sekvajn elementojn:", "ui_control_desc": "La kontrolpanelo enhavas la sekvajn elementojn:",
"ui_pop": "Pop - La nombro de trupunoj ke vi havas, via maksimuma populacio kaj la procento kun kiu vi ricevas ilin.", "ui_pop": "Pop - La nombro de trupunoj kiujn vi havas, via maksimuma populacio kaj la procento kun kiu vi ricevas ilin.",
"ui_gold": "La kvanto da oro ke vi havas kaj la procento kun kiu vi ricevas ilin.", "ui_gold": "La kvanto da oro kiun vi havas kaj la procento kun kiu vi ricevas ilin.",
"ui_troops_workers": "Trupoj kaj Laboristoj - La nombro da soldatoj kaj laboristoj asignitaj. Trupoj kutimas ataki aŭ defendi. Laboristoj kutimas generi oron. Vi povas ĝustigi la nombron da trupoj kaj laboristoj uzante la glitilon.", "ui_troops_workers": "Trupoj kaj Laboristoj - La nombro da soldatoj kaj laboristoj asignitaj. Trupoj kutimas ataki aŭ defendi. Laboristoj kutimas generi oron. Vi povas ĝustigi la nombron da trupoj kaj laboristoj uzante la glitilon.",
"ui_attack_ratio": "Ataka kvociento - La nombro da uzaj soldatoj kiam vi atakas. Vi povas ĝustigi la atakan kvocienton uzante la glitilon. Havi pli da atakaj trupoj ol la defendaj trupoj malpliigos la perdojn dum atako, dum havi malpli multe pliigos la damaĝon ricevitajn de viaj atakaj trupoj. La efiko ne superas rilatumon de 2:1.", "ui_attack_ratio": "Ataka kvociento - La nombro da uzaj soldatoj kiam vi atakas. Vi povas ĝustigi la atakan kvocienton uzante la glitilon. Havi pli da atakaj trupoj ol la defendaj trupoj malpliigos la perdojn dum atako, dum havi malpli multe pliigos la damaĝon ricevitajn de viaj atakaj trupoj. La efiko ne superas rilatumon de 2:1.",
"ui_options": "Opcioj", "ui_options": "Opcioj",
@@ -98,6 +101,7 @@
"infinite_gold": "Senfina oro", "infinite_gold": "Senfina oro",
"infinite_troops": "Senfinaj trupoj", "infinite_troops": "Senfinaj trupoj",
"disable_nukes": "Malŝalti nukleajn armilojn", "disable_nukes": "Malŝalti nukleajn armilojn",
"enables_title": "Ebligi Agordojn",
"start": "Komenci la ludon" "start": "Komenci la ludon"
}, },
"map": { "map": {
@@ -122,22 +126,31 @@
"betweentwoseas": "Inter du maroj", "betweentwoseas": "Inter du maroj",
"knownworld": "Konata Mondo", "knownworld": "Konata Mondo",
"faroeislands": "Ferooj", "faroeislands": "Ferooj",
"europeclassic": "Eŭropo (klasika)" "deglaciatedantarctica": "Malglacia Antarkto",
"europeclassic": "Eŭropo (klasika)",
"falklandislands": "Falklandoj",
"baikal": "Bajkalo"
},
"map_categories": {
"continental": "Kontinenta",
"regional": "Regiona",
"fantasy": "Alia"
}, },
"private_lobby": { "private_lobby": {
"title": "Aliĝi al privata salono", "title": "Aliĝi al privata ludejo",
"enter_id": "Enigu la salonan ID", "enter_id": "Enigu la ludejan ID-on",
"player": "Ludanto", "player": "Ludanto",
"players": "Ludantoj", "players": "Ludantoj",
"join_lobby": "Aliĝi al la salono", "join_lobby": "Aliĝi al la ludejo",
"checking": "Kontrolado de la salono...", "checking": "Kontrolado de la ludejo...",
"not_found": "Salono ne trovita. Bonvolu kontroli la ID kaj reprovi.", "not_found": "Ludejo ne trovita. Bonvolu kontroli la ID kaj reprovi.",
"error": "Eraro okazis. Bonvolu reprovi.", "error": "Eraro okazis. Bonvolu provi denove.",
"joined_waiting": "Sukcese aliĝis! Atendante la komencon de la ludo..." "joined_waiting": "Sukcese aliĝis! Atendante la komencon de la ludo..."
}, },
"public_lobby": { "public_lobby": {
"join": "Kunigi la baldaŭan ludon", "join": "Kunigi la baldaŭan ludon",
"waiting": "atendante ludantoj" "waiting": "atendante ludantoj",
"teams": "{num} teamoj"
}, },
"username": { "username": {
"enter_username": "Enigu vian uzantnomon", "enter_username": "Enigu vian uzantnomon",
@@ -147,7 +160,7 @@
"invalid_chars": "La uzantnomo povas enhavi nur literojn, ciferojn, spacojn, substrekojn kaj [krampojn]." "invalid_chars": "La uzantnomo povas enhavi nur literojn, ciferojn, spacojn, substrekojn kaj [krampojn]."
}, },
"host_modal": { "host_modal": {
"title": "Privata Salono", "title": "Privata Ludejo",
"mode": "Reĝimo", "mode": "Reĝimo",
"team_count": "Nombro de teamoj", "team_count": "Nombro de teamoj",
"options_title": "Opcioj", "options_title": "Opcioj",
@@ -157,7 +170,7 @@
"instant_build": "Tujkonstruaĵo", "instant_build": "Tujkonstruaĵo",
"infinite_gold": "Senfina oro", "infinite_gold": "Senfina oro",
"infinite_troops": "Senfinaj trupoj", "infinite_troops": "Senfinaj trupoj",
"disable_nukes": "Malŝalti nukleajn armilojn", "enables_title": "Ebligi Agordojn",
"player": "Ludanto", "player": "Ludanto",
"players": "Ludantoj", "players": "Ludantoj",
"waiting": "Atendante ludantojn...", "waiting": "Atendante ludantojn...",
@@ -165,7 +178,7 @@
}, },
"game_starting_modal": { "game_starting_modal": {
"title": "Ludo komenciĝas...", "title": "Ludo komenciĝas...",
"desc": "Preparante por komenci la salonon. Bonvolu atendi." "desc": "Preparante por komenci la ludejon. Bonvolu atendi."
}, },
"difficulty": { "difficulty": {
"difficulty": "Malfacileco", "difficulty": "Malfacileco",
@@ -175,12 +188,23 @@
"Impossible": "Neebla" "Impossible": "Neebla"
}, },
"game_mode": { "game_mode": {
"ffa": "Senpaga por ĉiuj", "ffa": "Ĉiu por si",
"teams": "Teamoj" "teams": "Teamoj"
}, },
"select_lang": { "select_lang": {
"title": "Elekti lingvon" "title": "Elekti lingvon"
}, },
"unit_type": {
"city": "Urbo",
"defense_post": "Defenda Posteno",
"port": "Haveno",
"warship": "Militŝipo",
"missile_silo": "Misila Silo",
"sam_launcher": "SAM-lanĉilo",
"atom_bomb": "Atombombo",
"hydrogen_bomb": "Hidrogenbombo",
"mirv": "MIRV"
},
"user_setting": { "user_setting": {
"title": "Uzantparametroj", "title": "Uzantparametroj",
"tab_basic": "Bazaj parametroj", "tab_basic": "Bazaj parametroj",
@@ -189,6 +213,8 @@
"dark_mode_desc": "Baskuli la retpaĝa aspekto inter hela kaj malhela temo", "dark_mode_desc": "Baskuli la retpaĝa aspekto inter hela kaj malhela temo",
"emojis_label": "😊 Emoĝioj", "emojis_label": "😊 Emoĝioj",
"emojis_desc": "Montri/Maski la emoĝiojn en la ludo", "emojis_desc": "Montri/Maski la emoĝiojn en la ludo",
"anonymous_names_label": "🥷 Maskitaj Nomoj",
"anonymous_names_desc": "Kaŝi verajn uzantnomojn kun hazardaj sur via ekrano.",
"left_click_label": "🖱️Maldekstra alklako por malfermi menuon", "left_click_label": "🖱️Maldekstra alklako por malfermi menuon",
"left_click_desc": "Kiam aktiviga, maldekstra alklako malfermas menuon kaj glava atakbutono. Kiam malaktiviga, maldekstra alklako atakas direkten.", "left_click_desc": "Kiam aktiviga, maldekstra alklako malfermas menuon kaj glava atakbutono. Kiam malaktiviga, maldekstra alklako atakas direkten.",
"attack_ratio_label": "⚔️ Atakkvociento", "attack_ratio_label": "⚔️ Atakkvociento",
@@ -221,9 +247,77 @@
"reset": "Rekomencigi", "reset": "Rekomencigi",
"unbind": "Senligi" "unbind": "Senligi"
}, },
"map_categories": { "chat": {
"continental": "Kontinenta", "title": "Rapida Babilejo",
"regional": "Regiona", "to": "Sendita al {user}: {msg}",
"fantasy": "Alia" "from": "De {user}: {msg}",
"category": "Kategorio",
"phrase": "Frazo",
"player": "Ludanto",
"send": "Sendi",
"search": "Serĉu ludanton...",
"build": "Konstruu vian mesaĝon...",
"cat": {
"help": "Helpo",
"attack": "Atako",
"defend": "Defendo",
"greet": "Salutoj",
"misc": "Diversaĵoj",
"warnings": "Avertoj"
},
"help": {
"troops": "Bonvolu doni al mi soldatojn!",
"gold": "Bonvolu doni al mi oron!",
"no_attack": "Bonvolu ne ataki min!",
"sorry_attack": "Pardonu, mi ne intencis ataki.",
"alliance": "Alianco?",
"help_defend": "Helpu min defendi kontraŭ [P1]!",
"team_up": "Ni kuniĝu kontraŭ [P1]!"
},
"attack": {
"attack": "Ataku [P1]!",
"mirv": "Lanĉu MIRV-on ĉe [P1]!",
"focus": "Fokusu fajron sur [P1]!",
"finish": "Ni finigu [P1]!"
},
"defend": {
"defend": "Defendu [P1]!",
"dont_attack": "Ne ataku [P1]!",
"ally": "[P1] estas mia aliancano!"
},
"greet": {
"hello": "Saluton!",
"good_luck": "Bonŝancon!",
"have_fun": "Amuziĝu!",
"gg": "GG!",
"nice_to_meet": "Plaĉas renkonti vin!",
"well_played": "Bone ludita!",
"hi_again": "Saluton denove!",
"bye": "Ĝis la revido!",
"thanks": "Dankon!",
"oops": "Ups, misa butono!",
"trust_me": "Vi povas fini min. Promeso!",
"trust_broken": "Mi fidis vin..."
},
"misc": {
"go": "Eku ni!",
"strategy": "Bona strategio!",
"fun": "Ĉi tiu ludo estas amuza!",
"pr": "Kiam mia tirpeto finfine estos kunfandita...?"
},
"warnings": {
"strong": "[P1] estas forta.",
"weak": "[P1] estas malforta.",
"mirv_soon": "[P1] povas lanĉi MIRV-on baldaŭ!",
"number1_warning": "La #1 ludanto baldaŭ venkos krom se ni kunigos teamon!",
"stalemate": "Ni faru pacon. Ĉi tio estas malpluirado, ni ambaŭ malvenkos.",
"has_allies": "[P1] havas multe da aliancanoj.",
"no_allies": "[P1] ne havas aliancanojn.",
"betrayed": "[P1] perfidis sian aliancanon!",
"getting_big": "[P1] kreskas tro rapide!",
"danger_base": "[P1] estas senprotekta!",
"saving_for_mirv": "[P1] ŝparas por lanĉi MIRV-on.",
"mirv_ready": "[P1] havas sufiĉe da oro por lanĉi MIRV-on!"
}
} }
} }
+102 -8
View File
@@ -7,7 +7,10 @@
}, },
"main": { "main": {
"title": "OpenFront (ALPHA)", "title": "OpenFront (ALPHA)",
"join_discord": "Rejoignez le Discord!", "join_discord": "Rejoignez le Discord !",
"login_discord": "Se connecter avec Discord",
"logged_in": "Connecté !",
"log_out": "Se déconnecter",
"create_lobby": "Créer un salon", "create_lobby": "Créer un salon",
"join_lobby": "Rejoindre un salon", "join_lobby": "Rejoindre un salon",
"single_player": "Mode solo", "single_player": "Mode solo",
@@ -98,6 +101,7 @@
"infinite_gold": "Or infini", "infinite_gold": "Or infini",
"infinite_troops": "Troupes infinies", "infinite_troops": "Troupes infinies",
"disable_nukes": "Désactiver les armes nucléaires", "disable_nukes": "Désactiver les armes nucléaires",
"enables_title": "Activer les paramètres",
"start": "Commencer la partie" "start": "Commencer la partie"
}, },
"map": { "map": {
@@ -122,7 +126,15 @@
"betweentwoseas": "Entre deux mers", "betweentwoseas": "Entre deux mers",
"knownworld": "Monde connu", "knownworld": "Monde connu",
"faroeislands": "Îles Féroé", "faroeislands": "Îles Féroé",
"europeclassic": "Europe (classique)" "deglaciatedantarctica": "Antarctique Déglacée",
"europeclassic": "Europe (classique)",
"falklandislands": "Îles Malouines",
"baikal": "Lac Baïkal"
},
"map_categories": {
"continental": "Continental",
"regional": "Régional",
"fantasy": "Autre"
}, },
"private_lobby": { "private_lobby": {
"title": "Rejoindre un salon privé", "title": "Rejoindre un salon privé",
@@ -137,7 +149,8 @@
}, },
"public_lobby": { "public_lobby": {
"join": "Rejoindre la prochaine partie", "join": "Rejoindre la prochaine partie",
"waiting": "joueurs en attente" "waiting": "joueurs en attente",
"teams": "{num} équipes"
}, },
"username": { "username": {
"enter_username": "Entrez votre nom d'utilisateur", "enter_username": "Entrez votre nom d'utilisateur",
@@ -157,7 +170,7 @@
"instant_build": "Construction instantanée", "instant_build": "Construction instantanée",
"infinite_gold": "Or infini", "infinite_gold": "Or infini",
"infinite_troops": "Troupes infinies", "infinite_troops": "Troupes infinies",
"disable_nukes": "Désactiver les armes nucléaires", "enables_title": "Activer les paramètres",
"player": "Joueur", "player": "Joueur",
"players": "Joueurs", "players": "Joueurs",
"waiting": "En attente de joueurs...", "waiting": "En attente de joueurs...",
@@ -181,6 +194,17 @@
"select_lang": { "select_lang": {
"title": "Sélectionner une langue" "title": "Sélectionner une langue"
}, },
"unit_type": {
"city": "Ville",
"defense_post": "Poste de défense",
"port": "Port",
"warship": "Navire de guerre",
"missile_silo": "Silo à missiles",
"sam_launcher": "Lanceur de SAM",
"atom_bomb": "Bombe atomique",
"hydrogen_bomb": "Bombe à hydrogène",
"mirv": "MIRV"
},
"user_setting": { "user_setting": {
"title": "Paramètres utilisateur", "title": "Paramètres utilisateur",
"tab_basic": "Réglages de base", "tab_basic": "Réglages de base",
@@ -189,6 +213,8 @@
"dark_mode_desc": "Basculer l'apparence du site entre les thèmes clairs et sombres", "dark_mode_desc": "Basculer l'apparence du site entre les thèmes clairs et sombres",
"emojis_label": "😊 Émojis", "emojis_label": "😊 Émojis",
"emojis_desc": "Afficher/Masquer les émoticônes dans le jeu", "emojis_desc": "Afficher/Masquer les émoticônes dans le jeu",
"anonymous_names_label": "🥷 Noms masqués",
"anonymous_names_desc": "Cacher le vrai nom des joueurs avec des noms aléatoires sur votre écran.",
"left_click_label": "🖱️ Clic gauche pour ouvrir le menu", "left_click_label": "🖱️ Clic gauche pour ouvrir le menu",
"left_click_desc": "Activé, un clic gauche ouvre le menu et le bouton épée d'attaque. Désactivé, un clic gauche attaque directement.", "left_click_desc": "Activé, un clic gauche ouvre le menu et le bouton épée d'attaque. Désactivé, un clic gauche attaque directement.",
"attack_ratio_label": "⚔️ Ratio d'attaque", "attack_ratio_label": "⚔️ Ratio d'attaque",
@@ -221,9 +247,77 @@
"reset": "Réinitialiser", "reset": "Réinitialiser",
"unbind": "Détacher" "unbind": "Détacher"
}, },
"map_categories": { "chat": {
"continental": "Continental", "title": "Discussion",
"regional": "Régional", "to": "Envoyé à {user}: {msg}",
"fantasy": "Autre" "from": "De {user}: {msg}",
"category": "Catégorie",
"phrase": "Phrase",
"player": "Joueur",
"send": "Envoyer",
"search": "Rechercher un joueur...",
"build": "Construire votre message...",
"cat": {
"help": "Aide",
"attack": "Attaque",
"defend": "Défense",
"greet": "Salutations",
"misc": "Divers",
"warnings": "Avertissements"
},
"help": {
"troops": "S'il te plaît, donne-moi des troupes !",
"gold": "S'il te plaît, donne-moi de l'or !",
"no_attack": "S'il te plaît, ne m'attaque pas !",
"sorry_attack": "Désolé, je ne voulais pas attaquer.",
"alliance": "Alliance ?",
"help_defend": "Aide-moi à me défendre contre [P1] !",
"team_up": "Faisons équipe contre [P1] !"
},
"attack": {
"attack": "Attaque [P1] !",
"mirv": "Lance un MIRV sur [P1] !",
"focus": "Concentre l'attaque sur [P1] !",
"finish": "Finissons [P1] !"
},
"defend": {
"defend": "Défend [P1] !",
"dont_attack": "N'attaque pas [P1] !",
"ally": "[P1] est mon allié !"
},
"greet": {
"hello": "Bonjour !",
"good_luck": "Bonne chance !",
"have_fun": "Amuse-toi bien !",
"gg": "GG !",
"nice_to_meet": "Enchanté·e !",
"well_played": "Bien joué !",
"hi_again": "Rebonjour !",
"bye": "Au revoir !",
"thanks": "Merci !",
"oops": "Oups, mauvais bouton !",
"trust_me": "Tu peux me faire confiance. Promis !",
"trust_broken": "Je t'ai fait confiance..."
},
"misc": {
"go": "C'est parti !",
"strategy": "Bonne stratégie !",
"fun": "Cette partie est amusante !",
"pr": "Quand est-ce que mon PR sera intégré...?"
},
"warnings": {
"strong": "[P1] est fort·e.",
"weak": "[P1] est faible.",
"mirv_soon": "[P1] peut bientôt lancer un MIRV !",
"number1_warning": "Le joueur #1 gagnera bientôt si nous ne faisons pas équipe !",
"stalemate": "Faisons la paix. C'est une impasse, nous perdrons tous les deux.",
"has_allies": "[P1] a beaucoup d'alliés.",
"no_allies": "[P1] n'a pas d'alliés.",
"betrayed": "[P1] a trahi son allié !",
"getting_big": "[P1] croît trop vite !",
"danger_base": "[P1] n'est pas protégé !",
"saving_for_mirv": "[P1] économise pour lancer un MIRV.",
"mirv_ready": "[P1] a assez d'or pour lancer un MIRV !"
}
} }
} }
+117 -22
View File
@@ -8,6 +8,9 @@
"main": { "main": {
"title": "OpenFront (ALPHA)", "title": "OpenFront (ALPHA)",
"join_discord": "Unisciti al nostro Discord!", "join_discord": "Unisciti al nostro Discord!",
"login_discord": "Accedi con Discord",
"logged_in": "Accesso effettuato!",
"log_out": "Esci",
"create_lobby": "Crea lobby", "create_lobby": "Crea lobby",
"join_lobby": "Unisciti a una Lobby", "join_lobby": "Unisciti a una Lobby",
"single_player": "Giocatore Singolo", "single_player": "Giocatore Singolo",
@@ -98,6 +101,7 @@
"infinite_gold": "Oro infinito", "infinite_gold": "Oro infinito",
"infinite_troops": "Truppe infinite", "infinite_troops": "Truppe infinite",
"disable_nukes": "Disabilita Bombe Nucleari", "disable_nukes": "Disabilita Bombe Nucleari",
"enables_title": "Abilita impostazioni",
"start": "Inizia partita" "start": "Inizia partita"
}, },
"map": { "map": {
@@ -121,7 +125,16 @@
"japan": "Giappone e paesi confinanti", "japan": "Giappone e paesi confinanti",
"betweentwoseas": "Tra I Due Mari", "betweentwoseas": "Tra I Due Mari",
"knownworld": "Mondo Conosciuto", "knownworld": "Mondo Conosciuto",
"faroeislands": "Isole Faroe" "faroeislands": "Isole Faroe",
"deglaciatedantarctica": "Antartide disghiacciata",
"europeclassic": "Europa (classica)",
"falklandislands": "Isole Falkland",
"baikal": "Lago Bajkal"
},
"map_categories": {
"continental": "Continentale",
"regional": "Regionale",
"fantasy": "Altro"
}, },
"private_lobby": { "private_lobby": {
"title": "Partecipa ad una Lobby Privata", "title": "Partecipa ad una Lobby Privata",
@@ -136,7 +149,8 @@
}, },
"public_lobby": { "public_lobby": {
"join": "Partecipa alla prossima Partita", "join": "Partecipa alla prossima Partita",
"waiting": "Giocatori in attesa" "waiting": "Giocatori in attesa",
"teams": "{num} squadre"
}, },
"username": { "username": {
"enter_username": "Inserisci il tuo username", "enter_username": "Inserisci il tuo username",
@@ -156,7 +170,7 @@
"instant_build": "Costruzione Istantanea ", "instant_build": "Costruzione Istantanea ",
"infinite_gold": "Oro infinito", "infinite_gold": "Oro infinito",
"infinite_troops": "Truppe infinite", "infinite_troops": "Truppe infinite",
"disable_nukes": "Disabilita Bombe Nucleari", "enables_title": "Abilita impostazioni",
"player": "Giocatore", "player": "Giocatore",
"players": "Giocatori", "players": "Giocatori",
"waiting": "In attesa dei giocatori...", "waiting": "In attesa dei giocatori...",
@@ -180,6 +194,17 @@
"select_lang": { "select_lang": {
"title": "Seleziona Lingua" "title": "Seleziona Lingua"
}, },
"unit_type": {
"city": "Città",
"defense_post": "Fortificazione difensiva",
"port": "Porto",
"warship": "Nave da guerra",
"missile_silo": "Silo Missilistico",
"sam_launcher": "SAM Antimissile",
"atom_bomb": "Bomba atomica",
"hydrogen_bomb": "Bomba a idrogeno",
"mirv": "MIRV"
},
"user_setting": { "user_setting": {
"title": "Impostazioni Utente", "title": "Impostazioni Utente",
"tab_basic": "Impostazioni Di Base", "tab_basic": "Impostazioni Di Base",
@@ -188,41 +213,111 @@
"dark_mode_desc": "Attiva/disattiva l'aspetto del sito tra il tema chiaro e scuro", "dark_mode_desc": "Attiva/disattiva l'aspetto del sito tra il tema chiaro e scuro",
"emojis_label": "😊 Emoji", "emojis_label": "😊 Emoji",
"emojis_desc": "Attiva o disattiva la visualizzazione delle emoji nel gioco", "emojis_desc": "Attiva o disattiva la visualizzazione delle emoji nel gioco",
"anonymous_names_label": "🥷 Nomi Nascosti",
"anonymous_names_desc": "Nascondi i nomi dei giocatori reali sullo schermo con nomi casuali.",
"left_click_label": "🖱️ Clic sinistro per aprire il menu", "left_click_label": "🖱️ Clic sinistro per aprire il menu",
"left_click_desc": "Quando attivo, il clic sinistro apre il menu e il pulsante di attacco. Quando disattivo, fare clic con il tasto destro attaccherà direttamente.", "left_click_desc": "Quando attivo, il clic sinistro apre il menu e il pulsante di attacco. Quando non attivo, fare clic con il tasto sinistro attaccherà direttamente.",
"attack_ratio_label": "⚔️ Rapporto Di Attacco", "attack_ratio_label": "⚔️ Rapporto Di Attacco",
"attack_ratio_desc": "Quale percentuale delle tue truppe inviare in attacco (1100%)", "attack_ratio_desc": "Quale percentuale delle tue truppe inviare in attacco (1100%)",
"troop_ratio_label": "🪖🛠️ Rapporto truppe e lavoratori", "troop_ratio_label": "🪖🛠️ Rapporto truppe e lavoratori",
"troop_ratio_desc": "Regola l'equilibrio tra truppe (per combattere) e lavoratori (per la produzione dell'oro) (1100%)", "troop_ratio_desc": "Regola l'equilibrio tra truppe (per combattere) e lavoratori (per la produzione dell'oro) (1100%)",
"easter_writing_speed_label": "Moltiplicatore Della Velocità Di Scrittura", "easter_writing_speed_label": "Moltiplicatore della velocità di scrittura",
"easter_writing_speed_desc": "Regolare quanto velocemente si finge di programmare (x1x100)", "easter_writing_speed_desc": "Regolare quanto velocemente fingi di programmare (x1x100)",
"easter_bug_count_label": "Conteggio Bug", "easter_bug_count_label": "Conteggio Bug",
"easter_bug_count_desc": "Quanti bug con cui stai bene (01000, emotivamente).", "easter_bug_count_desc": "Quanti bug per farti felice (01000, emotivamente)",
"view_options": "Opzioni di Visualizzazione", "view_options": "Opzioni di visualizzazione",
"toggle_view": "Attiva/Disattiva Vista", "toggle_view": "Attiva/Disattiva Vista",
"toggle_view_desc": "Vista alternativa (terreno/paesi)", "toggle_view_desc": "Vista alternativa (terreno/nazioni)",
"zoom_controls": "Controllo Zoom", "zoom_controls": "Controlli dello zoom",
"zoom_out": "Zoom Indietro", "zoom_out": "Zoom indietro",
"zoom_out_desc": "Riduce ingrandimento della mappa", "zoom_out_desc": "Riduce ingrandimento della mappa",
"zoom_in": "Zoom Avanti", "zoom_in": "Zoom avanti",
"zoom_in_desc": "Aumenta ingrandimento della mappa", "zoom_in_desc": "Aumenta ingrandimento della mappa",
"camera_movement": "Movimento vista", "camera_movement": "Movimento vista",
"center_camera": "Centra Vista", "center_camera": "Centra vista",
"center_camera_desc": "Centra vista sul giocatore", "center_camera_desc": "Centra vista sul giocatore",
"move_up": "Sposta vista in alto", "move_up": "Sposta vista in alto",
"move_up_desc": "Sposta la vista verso l'alto", "move_up_desc": "Sposta la vista verso l'alto",
"move_left": "Sposta vista a Sinistra", "move_left": "Sposta vista a sinistra",
"move_left_desc": "Sposta la vista a sinistra", "move_left_desc": "Sposta vista a destra",
"move_down": "Sposta vista In Giù", "move_down": "Sposta vista in basso",
"move_down_desc": "Sposta la vista verso il basso", "move_down_desc": "Sposta la vista verso il basso",
"move_right": "Sposta vista a Destra", "move_right": "Sposta vista a destra",
"move_right_desc": "Sposta la vista a destra", "move_right_desc": "Sposta vista a sinistra",
"reset": "Resetta", "reset": "Resetta",
"unbind": "Unbind (cancella assegnazione tasto)" "unbind": "Unbind (cancella assegnazione tasto)"
}, },
"map_categories": { "chat": {
"continental": "Continentale", "title": "Chat rapida",
"regional": "Regionale", "to": "Inviato a {user}: {msg}",
"fantasy": "Altro" "from": "Da {user}: {msg}",
"category": "Categoria",
"phrase": "Frase",
"player": "Giocatore",
"send": "Invia",
"search": "Ricerca giocatori...",
"build": "Genera il tuo messaggio...",
"cat": {
"help": "Aiuto",
"attack": "Attacco",
"defend": "Difendi",
"greet": "Saluti",
"misc": "Varie",
"warnings": "Avvisi"
},
"help": {
"troops": "Donami truppe, per favore!",
"gold": "Donami oro, per favore!",
"no_attack": "Per favore, non attaccarmi!",
"sorry_attack": "Scusa, non avevo intenzione di attaccare.",
"alliance": "Alleanza?",
"help_defend": "Aiutami a difendermi da [P1]!",
"team_up": "Facciamo squadra contro [P1]!"
},
"attack": {
"attack": "Attacca [P1]!",
"mirv": "Lancia una MIRV su [P1]!",
"focus": "Focalizziamoci su [P1]!",
"finish": "Finiamo [P1]!"
},
"defend": {
"defend": "Difendi [P1]!",
"dont_attack": "Non attaccare [P1]!",
"ally": "[P1] è mio alleato!"
},
"greet": {
"hello": "Salve!",
"good_luck": "Buona fortuna!",
"have_fun": "Buon divertimento!",
"gg": "GG!",
"nice_to_meet": "Piacere di conoscerti!",
"well_played": "Bella giocata!",
"hi_again": "Ciao di nuovo!",
"bye": "Arrivederci!",
"thanks": "Grazie!",
"oops": "Ops, pulsante sbagliato!",
"trust_me": "Puoi fidarti di me. Davvero!",
"trust_broken": "Mi fidavo di te..."
},
"misc": {
"go": "Andiamo!",
"strategy": "Bella strategia!",
"fun": "Questa partita è divertente!",
"pr": "Quando verranno inserite le mie PR...?"
},
"warnings": {
"strong": "[P1] è forte.",
"weak": "[P1] è debole.",
"mirv_soon": "[P1] potrà lanciare una MIRV a breve!",
"number1_warning": "Il giocatore #1 vincerà presto a meno che non ci alleiamo!",
"stalemate": "Facciamo la pace. Siamo in stallo, perderemmo entrambi.",
"has_allies": "[P1] ha molti alleati.",
"no_allies": "[P1] non ha alleati.",
"betrayed": "[P1] ha tradito un alleato!",
"getting_big": "[P1] sta crescendo troppo velocemente!",
"danger_base": "[P1] è indifeso!",
"saving_for_mirv": "[P1] sta risparmiando per lanciare una MIRV.",
"mirv_ready": "[P1] ha abbastanza oro per lanciare una MIRV!"
}
} }
} }
+81 -74
View File
@@ -8,6 +8,9 @@
"main": { "main": {
"title": "OpenFront (ALPHA)", "title": "OpenFront (ALPHA)",
"join_discord": "Discordサーバーに参加!", "join_discord": "Discordサーバーに参加!",
"login_discord": "Discordでログイン",
"logged_in": "ログイン中!",
"log_out": "ログアウト",
"create_lobby": "ロビーを作成", "create_lobby": "ロビーを作成",
"join_lobby": "ロビーに参加", "join_lobby": "ロビーに参加",
"single_player": "シングルプレイヤー", "single_player": "シングルプレイヤー",
@@ -97,7 +100,8 @@
"instant_build": "即時建設", "instant_build": "即時建設",
"infinite_gold": "資金無限", "infinite_gold": "資金無限",
"infinite_troops": "兵士無限", "infinite_troops": "兵士無限",
"enables_title": "有効化設定", "disable_nukes": "核兵器使用禁止",
"enables_title": "機能の有効化",
"start": "ゲーム開始" "start": "ゲーム開始"
}, },
"map": { "map": {
@@ -122,7 +126,15 @@
"betweentwoseas": "2つの海の間", "betweentwoseas": "2つの海の間",
"knownworld": "知られてる世界", "knownworld": "知られてる世界",
"faroeislands": "フェロー諸島", "faroeislands": "フェロー諸島",
"europeclassic": "ヨーロッパ (クラシック)" "deglaciatedantarctica": "退氷した南極大陸",
"europeclassic": "ヨーロッパ (クラシック)",
"falklandislands": "フォークランド諸島",
"baikal": "バイカル湖付近"
},
"map_categories": {
"continental": "大陸",
"regional": "地域",
"fantasy": "その他"
}, },
"private_lobby": { "private_lobby": {
"title": "ランダム", "title": "ランダム",
@@ -154,11 +166,11 @@
"options_title": "オプション", "options_title": "オプション",
"bots": "ボット数: ", "bots": "ボット数: ",
"bots_disabled": "無効", "bots_disabled": "無効",
"disable_nations": "実在する国家を無効化", "disable_nations": "国家を無効化",
"instant_build": "実在する国家を無効化", "instant_build": "即時建築",
"infinite_gold": "資金無限", "infinite_gold": "資金無限",
"infinite_troops": "兵士無限", "infinite_troops": "兵士無限",
"enables_title": "有効化設定", "enables_title": "機能設定",
"player": "プレイヤー", "player": "プレイヤー",
"players": "プレイヤー", "players": "プレイヤー",
"waiting": "他のプレイヤーの参加を待っています...", "waiting": "他のプレイヤーの参加を待っています...",
@@ -196,34 +208,34 @@
"user_setting": { "user_setting": {
"title": "ユーザー設定", "title": "ユーザー設定",
"tab_basic": "基本設定", "tab_basic": "基本設定",
"tab_keybinds": "キー設定", "tab_keybinds": "キーの割り当て",
"dark_mode_label": "🌙 ダークモード", "dark_mode_label": "ダークモード",
"dark_mode_desc": "ダークモードを切り替えます", "dark_mode_desc": "画面を黒基調に切り替えます",
"emojis_label": "😊 絵文字", "emojis_label": "絵文字を表示",
"emojis_desc": "ゲーム内での絵文字を表示します", "emojis_desc": "ゲーム中で絵文字を表示します",
"anonymous_names_label": "🥷 表示名を隠す", "anonymous_names_label": "ユーザー名を匿名にする",
"anonymous_names_desc": "実際のプレイヤー名を隠し、自分の画面ではランダムな名前で表示します。", "anonymous_names_desc": "自分の画面では他のプレイヤーのユーザー名を非表示にし、代わりに別の名前で表示します。",
"left_click_label": "🖱️ 左クリックでメニューを開く", "left_click_label": "左クリックでメニューを開く",
"left_click_desc": "オンにすると左クリックでメニューを開き、剣ボタンで攻撃します。オフにするとクリックで直接攻撃します。", "left_click_desc": "オンにすると左クリックでメニューを開くことができ、剣ボタンで攻撃します。オフにするとクリックでそのまま攻撃します。",
"attack_ratio_label": "⚔️ 攻撃比率", "attack_ratio_label": "出撃兵力の比率",
"attack_ratio_desc": "攻撃時に出す兵力の割合を設定します(1100)", "attack_ratio_desc": "初期時点で出撃する兵力の割合を設定します(1100%)",
"troop_ratio_label": "🪖🛠️ 兵士と労働者の比率", "troop_ratio_label": "兵士と労働者の比率",
"troop_ratio_desc": "戦闘用の兵士と金生産用の労働者のバランスを調整します(1100)", "troop_ratio_desc": "初期時点で兵士と金生産する労働者の割合を設定します(1100%)",
"easter_writing_speed_label": "書くスピード倍率", "easter_writing_speed_label": "書き込み速度の倍率",
"easter_writing_speed_desc": "どれくらい爆速でコードを書いてるフリをするか(×1〜×100)", "easter_writing_speed_desc": "コードを書く速さを調節する(x1-x100",
"easter_bug_count_label": "バグのカウント!", "easter_bug_count_label": "バグの個数",
"easter_bug_count_desc": "どれくらいのバグなら精神的に許せるか(0〜1000)", "easter_bug_count_desc": "いくつでもバグがあっても構わないけど、(具体的に言えば0–1000)",
"view_options": "表示オプション", "view_options": "表示オプション",
"toggle_view": "表示切", "toggle_view": "表示切り替え",
"toggle_view_desc": "地形ビューと国境ビューを切り替えます", "toggle_view_desc": "国境を非表示にし、地形だけが見れます",
"zoom_controls": "ズーム操作", "zoom_controls": "ズーム操作",
"zoom_out": "ズームアウト", "zoom_out": "ズームアウト",
"zoom_out_desc": "マップを縮小します", "zoom_out_desc": "マップを縮小します",
"zoom_in": "ズームイン", "zoom_in": "ズームイン",
"zoom_in_desc": "マップを拡大します", "zoom_in_desc": "マップを拡大します",
"camera_movement": "カメラ移動", "camera_movement": "カメラ移動",
"center_camera": "カメラ中央配置", "center_camera": "カメラを中心に移動",
"center_camera_desc": "プレイヤーにカメラを中央合わせします", "center_camera_desc": "プレイヤーの領土の中心に移動します",
"move_up": "カメラを上に移動", "move_up": "カメラを上に移動",
"move_up_desc": "カメラを上方向に移動します", "move_up_desc": "カメラを上方向に移動します",
"move_left": "カメラを左に移動", "move_left": "カメラを左に移動",
@@ -233,84 +245,79 @@
"move_right": "カメラを右に移動", "move_right": "カメラを右に移動",
"move_right_desc": "カメラを右方向に移動します", "move_right_desc": "カメラを右方向に移動します",
"reset": "リセット", "reset": "リセット",
"unbind": "解除" "unbind": "連携解除"
},
"map_categories": {
"continental": "大陸",
"regional": "地域",
"fantasy": "その他"
}, },
"chat": { "chat": {
"title": "クイックチャット", "title": "クイックチャット",
"category": "カテゴリ", "to": "{user}に送信:{msg}",
"from": "{user}から着信:{msg}",
"category": "カテゴリー",
"phrase": "フレーズ", "phrase": "フレーズ",
"player": "プレイヤー", "player": "プレイヤー",
"to": "{user}に送信: {msg}", "send": "送る",
"from": "{user}から着信: {msg}", "search": "プレイヤーを検索…",
"send": "送信", "build": "メッセージの作成",
"search": "プレイヤーを検索...",
"build": "チャットを作成...",
"cat": { "cat": {
"help": "支援要請", "help": "支援",
"attack": "攻撃", "attack": "攻撃",
"defend": "防", "defend": "防",
"greet": "挨拶", "greet": "あいさつ",
"misc": "その他", "misc": "その他",
"warnings": "警告" "warnings": "警告"
}, },
"help": { "help": {
"troops": "援軍をください", "troops": "兵士頂戴",
"gold": "お金をください", "gold": "お金頂戴",
"no_attack": "攻撃しないでください", "no_attack": "攻撃しないで!",
"sorry_attack": "ごめん、攻撃するつもりはなかった。", "sorry_attack": "ごめん、攻撃するつもりはなかった。",
"alliance": "同盟を組みませんか", "alliance": "同盟?",
"help_defend": "[P1] からの防衛を手伝って!", "help_defend": "[P1]から守るのを手伝って!",
"team_up": "[P1] に対抗して協力しよう!" "team_up": "[P1]と一緒にチームを組もう!"
}, },
"attack": { "attack": {
"attack": "[P1] を攻撃しよう", "attack": "[P1]に攻撃だ",
"mirv": "[P1] にMIRVを撃とう", "mirv": "MIRVを[P1]に発射",
"focus": "[P1] に集中攻撃しよう", "focus": "[P1]に集中砲火だ",
"finish": "[P1] を仕留めよう" "finish": "[P1]にとどめだ"
}, },
"defend": { "defend": {
"defend": "[P1] を守って", "defend": "[P1]を守",
"dont_attack": "[P1] を攻撃しないで!", "dont_attack": "[P1]を攻撃しないで!",
"ally": "[P1] は味方だ!" "ally": "[P1]は私の仲間だ!"
}, },
"greet": { "greet": {
"hello": "こんにちは!", "hello": "こんにちは!",
"good_luck": "頑張って", "good_luck": "幸運を祈る",
"have_fun": "楽しもう!", "have_fun": "楽しもう!",
"gg": "GG", "gg": "GG",
"nice_to_meet": "よろしく", "nice_to_meet": "はじめまして",
"well_played": "ナイスプレイ", "well_played": "良いプレイだった",
"hi_again": "また会ったね!", "hi_again": "また会ったね!",
"bye": "バイバイ", "bye": "じゃあね",
"thanks": "ありがとう!", "thanks": "ありがとう!",
"oops": "あっ、間違えた!", "oops": "おっと、手が滑った!",
"trust_me": "信じてくれ、本当だ", "trust_me": "私を信用して。約束する",
"trust_broken": "信じてたのに..." "trust_broken": "あなたを信じてたのに..."
}, },
"misc": { "misc": {
"go": "行こう!", "go": "行こう!",
"strategy": "いい作戦だ!", "strategy": "良い戦略だ!",
"fun": "このゲーム楽しい!", "fun": "このゲーム楽しい!",
"pr": "わたしのPRいつマージされるだろう..." "pr": "私のPRは最終的にいつ統合されるだろう..."
}, },
"warnings": { "warnings": {
"strong": "[P1] は強い。", "strong": "[P1]は強い。",
"weak": "[P1] は弱い。", "weak": "[P1] は弱い。",
"mirv_soon": "[P1]もうすぐMIRVを撃つぞ", "mirv_soon": "[P1]もうすぐMIRVを発射できる",
"number1_warning": "1位のプレイヤーが勝ちそうだ、協力しよう!", "number1_warning": "私たちが手を組まないと1位のプレイヤーがすぐに勝ってしまう!",
"stalemate": "和しよう。膠着状態だ、両方負ける。", "stalemate": "和しよう。この膠着状態を脱しないと私たちは負けてしまう。",
"has_allies": "[P1]は味方がい。", "has_allies": "[P1]はいっぱい味方がい。",
"no_allies": "[P1]は味方いない。", "no_allies": "[P1]は味方いない。",
"betrayed": "[P1] は味方を裏切った!", "betrayed": "[P1]は味方を裏切った!",
"getting_big": "[P1] の勢力が急拡大中", "getting_big": "[P1]の成長が速すぎる",
"danger_base": "[P1] の本拠地が無防備だ!", "danger_base": "[P1]無防備だ!",
"saving_for_mirv": "[P1] はMIRVために貯金してる。", "saving_for_mirv": "[P1]はMIRVを発射するために貯金してる。",
"mirv_ready": "[P1] はMIRVを撃てるだけの金を持ってる!" "mirv_ready": "[P1]はMIRVを発射できるだけの金を持ってる!"
} }
} }
} }
+103 -9
View File
@@ -8,6 +8,9 @@
"main": { "main": {
"title": "OpenFront (ALFA)", "title": "OpenFront (ALFA)",
"join_discord": "Word lid van de Discord!", "join_discord": "Word lid van de Discord!",
"login_discord": "Login met Discord",
"logged_in": "Ingelogd!",
"log_out": "Uitloggen",
"create_lobby": "Lobby aanmaken", "create_lobby": "Lobby aanmaken",
"join_lobby": "Lobby toetreden", "join_lobby": "Lobby toetreden",
"single_player": "Eén Speler", "single_player": "Eén Speler",
@@ -98,6 +101,7 @@
"infinite_gold": "Oneindig goud", "infinite_gold": "Oneindig goud",
"infinite_troops": "Oneindige troepen", "infinite_troops": "Oneindige troepen",
"disable_nukes": "Kernwapens uitschakelen", "disable_nukes": "Kernwapens uitschakelen",
"enables_title": "Onderdelen inschakelen",
"start": "Start Spel" "start": "Start Spel"
}, },
"map": { "map": {
@@ -122,7 +126,15 @@
"betweentwoseas": "Tussen twee zeeën", "betweentwoseas": "Tussen twee zeeën",
"knownworld": "Bekende Wereld", "knownworld": "Bekende Wereld",
"faroeislands": "Faeröer eilanden", "faroeislands": "Faeröer eilanden",
"europeclassic": "Europa (klassiek)" "deglaciatedantarctica": "Ontdooid Antarctica",
"europeclassic": "Europa (klassiek)",
"falklandislands": "Falklandeilanden",
"baikal": "Baikalmeer"
},
"map_categories": {
"continental": "Continent",
"regional": "Regio",
"fantasy": "Overig"
}, },
"private_lobby": { "private_lobby": {
"title": "Privélobby toetreden", "title": "Privélobby toetreden",
@@ -137,7 +149,8 @@
}, },
"public_lobby": { "public_lobby": {
"join": "Deelnemen aan volgende Spel", "join": "Deelnemen aan volgende Spel",
"waiting": "spelers wachten" "waiting": "spelers wachten",
"teams": "{num} Teams"
}, },
"username": { "username": {
"enter_username": "Voer je gebruikersnaam in", "enter_username": "Voer je gebruikersnaam in",
@@ -157,7 +170,7 @@
"instant_build": "Bouwwachttijd uitschakelen", "instant_build": "Bouwwachttijd uitschakelen",
"infinite_gold": "Oneindig goud", "infinite_gold": "Oneindig goud",
"infinite_troops": "Oneindige troepen", "infinite_troops": "Oneindige troepen",
"disable_nukes": "Kernwapens uitschakelen", "enables_title": "Onderdelen inschakelen",
"player": "Speler", "player": "Speler",
"players": "Spelers", "players": "Spelers",
"waiting": "Wachten op spelers...", "waiting": "Wachten op spelers...",
@@ -181,6 +194,17 @@
"select_lang": { "select_lang": {
"title": "Kies taal" "title": "Kies taal"
}, },
"unit_type": {
"city": "Stad",
"defense_post": "Verdedigingspost",
"port": "Haven",
"warship": "Oorlogsschip",
"missile_silo": "Raketsilo",
"sam_launcher": "Luchtdoelraket (SAM)-lanceerder",
"atom_bomb": "Atoombom",
"hydrogen_bomb": "Waterstofbom",
"mirv": "MIRV"
},
"user_setting": { "user_setting": {
"title": "Gebruikersinstellingen", "title": "Gebruikersinstellingen",
"tab_basic": "Basisinstellingen", "tab_basic": "Basisinstellingen",
@@ -188,7 +212,9 @@
"dark_mode_label": "🌙 Donkere modus", "dark_mode_label": "🌙 Donkere modus",
"dark_mode_desc": "Schakel tussen lichte en donkere thema's voor de site", "dark_mode_desc": "Schakel tussen lichte en donkere thema's voor de site",
"emojis_label": "😊 Emoji's", "emojis_label": "😊 Emoji's",
"emojis_desc": "Schakel het tonen van emoji's in de game uit/aan ", "emojis_desc": "Schakel het tonen van emoji's in de game uit/aan",
"anonymous_names_label": "🥷 Verborgen namen",
"anonymous_names_desc": "Vervang echte spelersnamen door willekeurige namen op je scherm.",
"left_click_label": "🖱️ Linkermuisknop voor openen menu", "left_click_label": "🖱️ Linkermuisknop voor openen menu",
"left_click_desc": "AAN: linkermuisknop opent het radiale menu met zwaard-aanvalsknop. UIT: linkermuisklik valt direct aan.", "left_click_desc": "AAN: linkermuisknop opent het radiale menu met zwaard-aanvalsknop. UIT: linkermuisklik valt direct aan.",
"attack_ratio_label": "⚔️ Aanvalsverhouding", "attack_ratio_label": "⚔️ Aanvalsverhouding",
@@ -196,7 +222,7 @@
"troop_ratio_label": "🪖🛠️ Troepen en Werkers-verhouding", "troop_ratio_label": "🪖🛠️ Troepen en Werkers-verhouding",
"troop_ratio_desc": "De balans tussen troepen (voor gevechten) en werkers (voor goudproductie) aanpassen (1-100%)", "troop_ratio_desc": "De balans tussen troepen (voor gevechten) en werkers (voor goudproductie) aanpassen (1-100%)",
"easter_writing_speed_label": "Schrijfsnelheidsvermenigvuldiger", "easter_writing_speed_label": "Schrijfsnelheidsvermenigvuldiger",
"easter_writing_speed_desc": "Pas aan hoe snel je pretendeert te coderen (x1-x100)", "easter_writing_speed_desc": "Pas aan hoe snel je pretendeert te programmeren (x1-x100)",
"easter_bug_count_label": "Aantal bugs", "easter_bug_count_label": "Aantal bugs",
"easter_bug_count_desc": "Hoeveel bugs je oké vindt (0-1000, gevoelsmatig)", "easter_bug_count_desc": "Hoeveel bugs je oké vindt (0-1000, gevoelsmatig)",
"view_options": "Weergave-opties", "view_options": "Weergave-opties",
@@ -221,9 +247,77 @@
"reset": "Resetten", "reset": "Resetten",
"unbind": "Loskoppelen" "unbind": "Loskoppelen"
}, },
"map_categories": { "chat": {
"continental": "Continent", "title": "Snelle Chat",
"regional": "Regio", "to": "> Aan {user}: {msg}",
"fantasy": "Overig" "from": "< Van {user}: {msg}",
"category": "Categorie",
"phrase": "Zin",
"player": "Speler",
"send": "Verzenden",
"search": "Zoek speler...",
"build": "Bouw je bericht op...",
"cat": {
"help": "Help",
"attack": "Val aan",
"defend": "Verdedig",
"greet": "Groet",
"misc": "Overig",
"warnings": "Waarschuw"
},
"help": {
"troops": "Geef me troepen alsjeblieft!",
"gold": "Geef me goud alsjeblieft!",
"no_attack": "Val me niet aan alsjeblieft!",
"sorry_attack": "Sorry, ik wilde je niet aanvallen.",
"alliance": "Bondgenoten worden?",
"help_defend": "Help me tegen [P1] te verdedigen!",
"team_up": "Laten we het opnemen tegen [P1]!"
},
"attack": {
"attack": "Val [P1] aan!",
"mirv": "Vuur een MIRV af op [P1]!",
"focus": "Vuur op [P1]!",
"finish": "Laten we [P1] uitschakelen!"
},
"defend": {
"defend": "Verdedig [P1]!",
"dont_attack": "Val [P1] niet aan!",
"ally": "[P1] is mijn bondgenoot!"
},
"greet": {
"hello": "Hoi",
"good_luck": "Succes!",
"have_fun": "Veel plezier!",
"gg": "GG!",
"nice_to_meet": "Leuk je te ontmoeten!",
"well_played": "Goed gespeeld!",
"hi_again": "Hoi weer!",
"bye": "Doei!",
"thanks": "Dank je!",
"oops": "Oeps, verkeerde knop!",
"trust_me": "Je kunt me vertrouwen. Echt!",
"trust_broken": "Ik vertrouwde je..."
},
"misc": {
"go": "Yes!",
"strategy": "Goeie strategie!",
"fun": "Dit spel is leuk!",
"pr": "Wanneer wordt mijn pull request eindelijk gemerged?"
},
"warnings": {
"strong": "[P1] is sterk.",
"weak": "[P1] is zwak.",
"mirv_soon": "[P1] kan bijna een MIRV lanceren!",
"number1_warning": "De #1 speler wint bijna als we niet samenwerken!",
"stalemate": "Vrede? Dit is een patstelling en anders verliezen we beide.",
"has_allies": "[P1] heeft veel bondgenoten.",
"no_allies": "[P1] heeft geen bondgenoten.",
"betrayed": "[P1] heeft een bondgenoot verraden!",
"getting_big": "[P1] wordt te snel groter!",
"danger_base": "[P1] is onbeschermd!",
"saving_for_mirv": "[P1] spaart voor een MIRV.",
"mirv_ready": "[P1] heeft genoeg goud om een MIRV te lanceren!"
}
} }
} }
+102 -8
View File
@@ -8,6 +8,9 @@
"main": { "main": {
"title": "OpenFront (ALPHA)", "title": "OpenFront (ALPHA)",
"join_discord": "Dołącz do Discord'a!", "join_discord": "Dołącz do Discord'a!",
"login_discord": "Zaloguj się przez Discorda",
"logged_in": "Zalogowano!",
"log_out": "Wyloguj się",
"create_lobby": "Utwórz lobby", "create_lobby": "Utwórz lobby",
"join_lobby": "Dołącz do lobby", "join_lobby": "Dołącz do lobby",
"single_player": "Gra jednoosobowa", "single_player": "Gra jednoosobowa",
@@ -98,6 +101,7 @@
"infinite_gold": "Nieskończone złoto", "infinite_gold": "Nieskończone złoto",
"infinite_troops": "Nieskończone wojsko", "infinite_troops": "Nieskończone wojsko",
"disable_nukes": "Wyłącz broń nuklearną", "disable_nukes": "Wyłącz broń nuklearną",
"enables_title": "Włącz ustawienia",
"start": "Rozpocznij Grę" "start": "Rozpocznij Grę"
}, },
"map": { "map": {
@@ -122,7 +126,15 @@
"betweentwoseas": "Między dwoma morzami", "betweentwoseas": "Między dwoma morzami",
"knownworld": "Znany Świat", "knownworld": "Znany Świat",
"faroeislands": "Wyspy Owcze", "faroeislands": "Wyspy Owcze",
"europeclassic": "" "deglaciatedantarctica": "Zdeglacjowana Antarktyka",
"europeclassic": "Europa (klasyczna)",
"falklandislands": "Falklandy",
"baikal": "Bajkał"
},
"map_categories": {
"continental": "Kontynentalny",
"regional": "Lokalny",
"fantasy": "Pozostałe"
}, },
"private_lobby": { "private_lobby": {
"title": "Dołącz do prywatnego Lobby", "title": "Dołącz do prywatnego Lobby",
@@ -137,7 +149,8 @@
}, },
"public_lobby": { "public_lobby": {
"join": "Dołącz do następnej gry", "join": "Dołącz do następnej gry",
"waiting": "oczekujący gracze" "waiting": "oczekujący gracze",
"teams": "{num} drużyn"
}, },
"username": { "username": {
"enter_username": "Wprowadź swoją nazwę użytkownika", "enter_username": "Wprowadź swoją nazwę użytkownika",
@@ -157,7 +170,7 @@
"instant_build": "Natychmiastowa budowa", "instant_build": "Natychmiastowa budowa",
"infinite_gold": "Nieskończone złoto", "infinite_gold": "Nieskończone złoto",
"infinite_troops": "Nieskończone wojsko", "infinite_troops": "Nieskończone wojsko",
"disable_nukes": "Wyłącz broń nuklearną", "enables_title": "Włącz ustawienia",
"player": "Gracz", "player": "Gracz",
"players": "Gracze", "players": "Gracze",
"waiting": "Oczekiwanie na graczy...", "waiting": "Oczekiwanie na graczy...",
@@ -181,6 +194,17 @@
"select_lang": { "select_lang": {
"title": "Wybierz język" "title": "Wybierz język"
}, },
"unit_type": {
"city": "Miasto",
"defense_post": "Punkt Obronny",
"port": "Port",
"warship": "Okręt wojenny",
"missile_silo": "Silos rakietowy",
"sam_launcher": "Wyrzutnia SAM",
"atom_bomb": "Bomba atomowa",
"hydrogen_bomb": "Bomba wodorowa",
"mirv": "MIRV"
},
"user_setting": { "user_setting": {
"title": "Ustawienia użytkownika", "title": "Ustawienia użytkownika",
"tab_basic": "Podstawowe ustawienia", "tab_basic": "Podstawowe ustawienia",
@@ -189,6 +213,8 @@
"dark_mode_desc": "Przełącz wygląd strony pomiędzy jasnym a ciemnym trybem", "dark_mode_desc": "Przełącz wygląd strony pomiędzy jasnym a ciemnym trybem",
"emojis_label": "😊 Emotki", "emojis_label": "😊 Emotki",
"emojis_desc": "Przełącz, czy emotki mają być wyświetlane w grze", "emojis_desc": "Przełącz, czy emotki mają być wyświetlane w grze",
"anonymous_names_label": "🥷 Ukryte Nazwy",
"anonymous_names_desc": "Ukryj prawdziwe nazwy graczy, zastępując je losowymi na swoim ekranie.",
"left_click_label": "🖱️ Kliknij lewym przyciskiem myszy aby otworzyć Menu", "left_click_label": "🖱️ Kliknij lewym przyciskiem myszy aby otworzyć Menu",
"left_click_desc": "Gdy WŁĄCZONE, lewy przycisk myszy otwiera menu, a przycisk z mieczem atakuje. Gdy WYŁĄCZONE, lewy przycisk myszy atakuje bezpośrednio.", "left_click_desc": "Gdy WŁĄCZONE, lewy przycisk myszy otwiera menu, a przycisk z mieczem atakuje. Gdy WYŁĄCZONE, lewy przycisk myszy atakuje bezpośrednio.",
"attack_ratio_label": "⚔️ Współczynnik ataku", "attack_ratio_label": "⚔️ Współczynnik ataku",
@@ -204,7 +230,7 @@
"toggle_view_desc": "Alternatywny widok (teren/państwa)", "toggle_view_desc": "Alternatywny widok (teren/państwa)",
"zoom_controls": "Sterowanie przybliżeniem", "zoom_controls": "Sterowanie przybliżeniem",
"zoom_out": "Oddal", "zoom_out": "Oddal",
"zoom_out_desc": "Oddala widok mapy", "zoom_out_desc": "Oddal mapę",
"zoom_in": "Przybliż", "zoom_in": "Przybliż",
"zoom_in_desc": "Przybliż mapę", "zoom_in_desc": "Przybliż mapę",
"camera_movement": "Ruch kamery", "camera_movement": "Ruch kamery",
@@ -221,9 +247,77 @@
"reset": "Zresetuj", "reset": "Zresetuj",
"unbind": "Odbinduj" "unbind": "Odbinduj"
}, },
"map_categories": { "chat": {
"continental": "Kontynentalny", "title": "Szybka rozmowa",
"regional": "Lokalny", "to": "Wysłano {user}: {msg}",
"fantasy": "Pozostałe" "from": "Od {user}: {msg}",
"category": "Kategoria",
"phrase": "Fraza",
"player": "Gracz",
"send": "Wyślij",
"search": "Wyszukaj gracza...",
"build": "Utwórz wiadomość...",
"cat": {
"help": "Pomoc",
"attack": "Atak",
"defend": "Obrona",
"greet": "Pozdrowienia",
"misc": "Różne",
"warnings": "Ostrzeżenia"
},
"help": {
"troops": "Proszę, daj mi żołnierzy!",
"gold": "Proszę, daj mi złoto!",
"no_attack": "Proszę, nie atakuj mnie!",
"sorry_attack": "Przepraszam, nie chciałem zaatakować.",
"alliance": "Sojusz?",
"help_defend": "Pomóż mi bronić się przed [P1]!",
"team_up": "Zespólmy się przeciwko [P1]!"
},
"attack": {
"attack": "Zaatakuj [P1]!",
"mirv": "Wystrzel MIRV w [P1]!",
"focus": "Skup atak na [P1]!",
"finish": "Wykończmy [P1]!"
},
"defend": {
"defend": "Broń [P1]!",
"dont_attack": "Nie atakuj [P1]!",
"ally": "[P1] jest moim sojusznikiem!"
},
"greet": {
"hello": "Cześć!",
"good_luck": "Powodzenia!",
"have_fun": "Miłej zabawy!",
"gg": "GG!",
"nice_to_meet": "Miło Cię poznać!",
"well_played": "Dobrze rozegrane!",
"hi_again": "Witaj ponownie!",
"bye": "Pa pa!",
"thanks": "Dzięki!",
"oops": "Ups, zły przycisk!",
"trust_me": "Możesz mi zaufać. Obiecuję!",
"trust_broken": "Ufałem ci..."
},
"misc": {
"go": "Chodźmy!",
"strategy": "Dobra strategia!",
"fun": "Ta gra jest świetna!",
"pr": "Kiedy w końcu mój PR zostanie połączony...?"
},
"warnings": {
"strong": "[P1] jest silny.",
"weak": "[P1] jest słaby.",
"mirv_soon": "[P1] może wkrótce uruchomić MIRV!",
"number1_warning": "Gracz nr 1 wkrótce wygra, chyba że się połączymy!",
"stalemate": "Zróbmy sojusz. To impas, oboje przegramy.",
"has_allies": "[P1] ma wielu sojuszników.",
"no_allies": "[P1] nie ma żadnych sojuszników.",
"betrayed": "[P1] zdradził swojego sojusznika!",
"getting_big": "[P1] zbyt szybko rośnie!",
"danger_base": "[P1] jest niezabezpieczony",
"saving_for_mirv": "[P1] oszczędza, aby uruchomić MIRV.",
"mirv_ready": "[P1] ma wystarczającą ilość złota, aby uruchomić MIRV!"
}
} }
} }
+101 -7
View File
@@ -8,6 +8,9 @@
"main": { "main": {
"title": "OpenFront (АЛЬФА)", "title": "OpenFront (АЛЬФА)",
"join_discord": "Присоединяйтесь к Discord!", "join_discord": "Присоединяйтесь к Discord!",
"login_discord": "Войти через Discord",
"logged_in": "Вход выполнен!",
"log_out": "Выйти",
"create_lobby": "Создать лобби", "create_lobby": "Создать лобби",
"join_lobby": "Присоединиться к лобби", "join_lobby": "Присоединиться к лобби",
"single_player": "Одиночная игра", "single_player": "Одиночная игра",
@@ -98,6 +101,7 @@
"infinite_gold": "Неограниченное золото", "infinite_gold": "Неограниченное золото",
"infinite_troops": "Неограниченные войска", "infinite_troops": "Неограниченные войска",
"disable_nukes": "Отключить бомбы", "disable_nukes": "Отключить бомбы",
"enables_title": "Разрешения",
"start": "Начать игру" "start": "Начать игру"
}, },
"map": { "map": {
@@ -122,7 +126,15 @@
"betweentwoseas": "Между двух морей", "betweentwoseas": "Между двух морей",
"knownworld": "Известный мир", "knownworld": "Известный мир",
"faroeislands": "Фарерские острова", "faroeislands": "Фарерские острова",
"europeclassic": "Европа (классическая)" "deglaciatedantarctica": "Растаявшая Антарктида",
"europeclassic": "Европа (классическая)",
"falklandislands": "Фолклендские острова",
"baikal": "Байкал"
},
"map_categories": {
"continental": "Континентальные",
"regional": "Региональные",
"fantasy": "Прочие"
}, },
"private_lobby": { "private_lobby": {
"title": "Присоединиться к приватному лобби", "title": "Присоединиться к приватному лобби",
@@ -137,7 +149,8 @@
}, },
"public_lobby": { "public_lobby": {
"join": "Присоединиться к следующей игре", "join": "Присоединиться к следующей игре",
"waiting": "игрока(-ов) в ожидании" "waiting": "игрока(-ов) в ожидании",
"teams": "Команд: {num}"
}, },
"username": { "username": {
"enter_username": "Введите своё имя игрока", "enter_username": "Введите своё имя игрока",
@@ -157,7 +170,7 @@
"instant_build": "Мгновенная стройка", "instant_build": "Мгновенная стройка",
"infinite_gold": "Неограниченное золото", "infinite_gold": "Неограниченное золото",
"infinite_troops": "Неограниченные войска", "infinite_troops": "Неограниченные войска",
"disable_nukes": "Отключить бомбы", "enables_title": "Разрешения",
"player": "Игрок", "player": "Игрок",
"players": "Игрока(-ов)", "players": "Игрока(-ов)",
"waiting": "Ожидание игроков...", "waiting": "Ожидание игроков...",
@@ -181,6 +194,17 @@
"select_lang": { "select_lang": {
"title": "Выберите язык" "title": "Выберите язык"
}, },
"unit_type": {
"city": "Город",
"defense_post": "Укрепление",
"port": "Порт",
"warship": "Военный корабль",
"missile_silo": "Ракетная шахта",
"sam_launcher": "Пусковая установка ЗРК",
"atom_bomb": "Атомная бомба",
"hydrogen_bomb": "Водородная бомба",
"mirv": "РГЧ ИН"
},
"user_setting": { "user_setting": {
"title": "Пользовательские настройки", "title": "Пользовательские настройки",
"tab_basic": "Основные настройки", "tab_basic": "Основные настройки",
@@ -189,6 +213,8 @@
"dark_mode_desc": "Переключение внешнего вида сайта между светлой и тёмной темой", "dark_mode_desc": "Переключение внешнего вида сайта между светлой и тёмной темой",
"emojis_label": "😊 Смайлы", "emojis_label": "😊 Смайлы",
"emojis_desc": "Переключение видимости смайлов во время игры", "emojis_desc": "Переключение видимости смайлов во время игры",
"anonymous_names_label": "🥷 Скрытые имена",
"anonymous_names_desc": "Скрыть настоящие имена игроков и заменить их случайными.",
"left_click_label": "🖱️ Открытие меню левой кнопкой мыши", "left_click_label": "🖱️ Открытие меню левой кнопкой мыши",
"left_click_desc": "ВКЛЮЧЕНО: щелчок левой кнопкой мыши открывает меню, атака совершается кнопкой с мечом. ВЫКЛЮЧЕНО: нажатие левой кнопкой мыши совершает атаку напрямую.", "left_click_desc": "ВКЛЮЧЕНО: щелчок левой кнопкой мыши открывает меню, атака совершается кнопкой с мечом. ВЫКЛЮЧЕНО: нажатие левой кнопкой мыши совершает атаку напрямую.",
"attack_ratio_label": "⚔️ Соотношение атаки", "attack_ratio_label": "⚔️ Соотношение атаки",
@@ -221,9 +247,77 @@
"reset": "Сбросить", "reset": "Сбросить",
"unbind": "Освободить" "unbind": "Освободить"
}, },
"map_categories": { "chat": {
"continental": "Континентальные", "title": "Быстрый чат",
"regional": "Региональные", "to": "Отправлено {user}: {msg}",
"fantasy": "Прочие" "from": "От {user}: {msg}",
"category": "Категория",
"phrase": "Фраза",
"player": "Игрок",
"send": "Отправить",
"search": "Искать игрока...",
"build": "Создайте ваше сообщение...",
"cat": {
"help": "Помощь",
"attack": "Атака",
"defend": "Защита",
"greet": "Приветствия",
"misc": "Прочее",
"warnings": "Предупреждения"
},
"help": {
"troops": "Пожалуйста, дайте мне войска!",
"gold": "Пожалуйста, дайте мне золото!",
"no_attack": "Пожалуйста, не атакуйте меня!",
"sorry_attack": "Извините, я не хотел атаковать.",
"alliance": "Альянс?",
"help_defend": "Помогите мне защититься от [P1]!",
"team_up": "Давайте объединимся против [P1]!"
},
"attack": {
"attack": "Атакуйте [P1]!",
"mirv": "Запустите РГЧ ИН на [P1]!",
"focus": "Сосредоточьте огонь на [P1]!",
"finish": "Покончим с [P1]!"
},
"defend": {
"defend": "Защищайте [P1]!",
"dont_attack": "Не атакуйте [P1]!",
"ally": "[P1] — мой союзник!"
},
"greet": {
"hello": "Здравствуйте!",
"good_luck": "Удачи!",
"have_fun": "Развлекайтесь!",
"gg": "GG!",
"nice_to_meet": "Приятно познакомиться!",
"well_played": "Хорошо сыграно!",
"hi_again": "И снова здравствуйте!",
"bye": "Пока!",
"thanks": "Спасибо!",
"oops": "Ой, не та кнопка!",
"trust_me": "Можете мне доверять. Обещаю!",
"trust_broken": "Я доверял тебе..."
},
"misc": {
"go": "Поехали!",
"strategy": "Хорошая стратегия!",
"fun": "Эта игра весёлая!",
"pr": "Когда мой PR наконец будет объединен...?"
},
"warnings": {
"strong": "[P1] силён.",
"weak": "[P1] слаб.",
"mirv_soon": "[P1] скоро может запустить РГЧ ИН!",
"number1_warning": "Игрок №1 скоро победит если мы не объединимся!",
"stalemate": "Давайте заключим мир. Это ничья; мы оба проиграем.",
"has_allies": "У [P1] много союзников.",
"no_allies": "У [P1] нет союзников.",
"betrayed": "[P1] предал союзника!",
"getting_big": "[P1] растёт слишком быстро!",
"danger_base": "[P1] не защищён!",
"saving_for_mirv": "[P1] копит на запуск РГЧ ИН.",
"mirv_ready": "У [P1] достаточно золота на запуск РГЧ ИН!"
}
} }
} }
+323
View File
@@ -0,0 +1,323 @@
{
"lang": {
"en": "Toki Pona",
"native": "toki pona",
"svg": "toki_pona",
"lang_code": "toki"
},
"main": {
"title": "musi Openpon (ALPHA)",
"join_discord": "o tawa kulupu mi lon ilo Siko a!",
"login_discord": "o kama kepeken ilo Siko",
"logged_in": "kama a!",
"log_out": "o weka",
"create_lobby": "o pali e musi sin",
"join_lobby": "o kama tawa tomo",
"single_player": "musi pi jan wan",
"instructions": "lawa musi",
"how_to_play": "nasin musi",
"wiki": "lipu sona"
},
"help_modal": {
"hotkeys": "ilo luka",
"table_key": "ilo luka",
"table_action": "pali",
"action_alt_view": "o ante lukin (sijelo ma/ma jan)",
"action_attack_altclick": "(ilo luka soto li open e lipu ken la) o utala",
"action_build": "o open e lipu pali",
"action_emote": "o open e lipu pi tawa musi",
"action_center": "o lukin e jan musi",
"action_zoom": "o lukin suli anu lili",
"action_move_camera": "o tawa e lukin",
"action_ratio_change": "o suli anu lili e nanpa utala",
"action_reset_gfx": "o pini e ante tawa sitelen",
"ui_section": "ilo sona musi",
"ui_leaderboard": "lipu pi jan utala",
"ui_leaderboard_desc": "lipu pi jan utala li pana e sona ni pi jan utala wawa: nimi en suli ma en mani.",
"ui_control": "ilo pi ken ante",
"ui_control_desc": "ilo pi ken ante li jo e ni:",
"ui_pop": "nanpa - nanpa jan sina en nanpa jan suli nanpa wan en wawa pi kama ona.",
"ui_gold": "mani - mani sina en wawa pi kama ona.",
"ui_troops_workers": "kulupu utala en kulupu pali - nanpa pi kulupu utala en nanpa pi kulupu pali. kulupu utala li utala li awen tan pakala. kulupu pali li kama jo e mani. sina ken ante e nanpa ni kepeken sike tawa.",
"ui_attack_ratio": "nanpa utala - sina utala kepeken kulupu utala la suli ona li nanpa ni. sina ken ante e nanpa ni kepeken sike tawa. kulupu awen li suli la sina weka lili e kulupu sina, taso ona li lili la kulupu sina li pakala suli. nanpa li suli tan nanpa 2:1 la ijo ni li ante ala.",
"ui_options": "ken nasin",
"ui_options_desc": "ken ni li lon:",
"option_pause": "o pini anu awen e musi - ni li ken lon taso musi pi jan wan.",
"option_timer": "tenpo - tenpo tan open musi.",
"option_exit": "o tawa.",
"option_settings": "ken - o open e lipu ken. sina ken ante e ante lukin e sitelen pimeja e sitelen Emosi e pali pi ilo luka soto lon ni.",
"radial_title": "sike ken",
"radial_desc": "ilo luka teje (anu luka) li open e sike ken. ni la sina ken ni:",
"radial_build": "o open e lipu pali.",
"radial_info": "o open e lipu sona.",
"radial_boat": "o tawa e tomo tawa telo tawa utala lon ma pi wile sina (sina ken tawa telo la ni taso la sina ken).",
"radial_close": "o pini.",
"info_title": "lipu sona",
"info_enemy_desc": "lipu sona li jo e sona ni pi jan musi: nimi en mani en nanpa pi kulupu utala en jan ike ala ike. jan li ike e jan pona ona la ona li jan ike. sitelen ni li ken pali:",
"info_target": "o sitelen e jan musi tawa jan pona sina ale. sina ken utala kulupu kepeken ni.",
"info_alliance": "o alasa pona pi jan musi. jan pona li ken pana e ijo tawa ona ante, taso ona li ken ala utala e ona ante.",
"info_emoji": "o toki e sitelen Emosi tawa jan musi.",
"info_ally_panel": "lipu sona pi jan pona",
"info_ally_desc": "sina kama pona jan la sitelen sin ni li kama:",
"ally_betray": "o utala e jan pona sina o pini e pona. ni la sitelen li lon poka pi nimi sina, taso kulupu ante kin li ike la lon ala. utala tawa sina li ike lili tawa kulupu utala. ken lili la ilo li pona e sina. jan o pona ala e sina.",
"ally_donate": "o pana e kulupu utala sina tawa jan pona sina. ona li jo lili e kulupu la, kulupu utala li utala e ona la, ona li wile e wawa tawa kulupu utala la, ni ale la sina ken kepeken ni.",
"build_menu_title": "lipu pali",
"build_name": "nimi",
"build_icon": "sitelen",
"build_desc": "sona",
"build_city": "ma tomo",
"build_city_desc": "ma tomo li suli e nanpa jan suli nanpa wan sina. sina ken ala suli e ma sina la sina lon poka pi nanpa jan suli nanpa wan la ni tu la ni li pona.",
"build_defense": "tomo awen",
"build_defense_desc": "tomo awen li suli e awen lon linja poka. utala kama li kama lili li moli suli e kulupu ona.",
"build_port": "tomo pi tomo tawa telo",
"build_port_desc": "tomo pi tomo tawa telo li pana e tomo tawa telo esun tawa ma ante (taso sina anu ona li kepeken ken 「o pini e esun」). ni li pana e mani tawa kulupu tu. ni la ni li ken e pali pi tomo tawa telo utala. ni li ken lon poka telo taso.",
"build_warship": "tomo tawa telo utala",
"build_warship_desc": "tomo tawa telo utala li tawa sike li pini e tomo tawa telo esun li pakala e tomo tawa telo pi kulupu utala. ona li kama tan tomo pi tomo tawa telo nanpa wan li tawa lon telo pi wile sina. sina ken tawa e tomo tawa telo utala kepeken ilo luka utala sina lon ona lon telo sin.",
"build_silo": "tomo pi ilo pi pakala wawa",
"build_silo_desc": "tomo pi ilo pi pakala wawa li pana e ilo pi pakala wawa.",
"build_sam": "ilo tawa pi ilo sewi pi pakala wawa",
"build_sam_desc": "ken kipisi MMMLLL la ni li ken pini e ilo pi pakala wawa pi kulupu utala lon sike ona pi ijo sitelen wan ale. ilo sewi pi pakala wawa li kama sin lon tenpo lili luka tu ala luka li ken ala pini e ilo pi pakala wawa mute.",
"build_atom": "ilo pi pakala wawa pi kipisi ijo",
"build_atom_desc": "ilo lili ni pi pakala wawa li pakala e ma e tomo e tomo tawa telo. ona li kama tan tomo pi ilo pi pakala wawa nanpa wan li tawa ma pi pali ona.",
"build_hydrogen": "ilo pi pakala wawa pi wan ijo",
"build_hydrogen_desc": "ilo suli pi pakala wawa. ona li kama tan tomo pi ilo pi pakala wawa nanpa wan li tawa ma pi pali ona.",
"build_mirv": "ilo pi pakala wawa mute",
"build_mirv_desc": "ilo wawa nanpa wan pi pakala wawa. ona li tu tawa ilo lili tawa ma suli. ona li pakala e jan musi pi wile sina taso. ona li kama tan tomo pi ilo pi pakala wawa nanpa wan li tawa ma pi pali ona.",
"player_icons": "sitelen pi jan musi",
"icon_desc": "ni li sitelen lon musi li sona ona:",
"icon_crown": "len lawa pi jan lawa - ni li jan musi nanpa wan.",
"icon_traitor": "sitelen utala - jan ike. jan musi ni li utala e jan pona ona.",
"icon_ally": "luka tu - jan pona. jan musi ni li jan pona sina.",
"info_enemy_panel": "lipu sona pi jan utala"
},
"single_modal": {
"title": "jan musi wan",
"allow_alliances": "o ken e jan pona",
"options_title": "ken",
"bots": "ilo: ",
"bots_disabled": "pini",
"disable_nations": "o pini e ma suli",
"instant_build": "o pali kepeken tenpo ala",
"infinite_gold": "o jo e mani ale",
"infinite_troops": "o jo e kulupu utala ale",
"disable_nukes": "o pini e ilo pi pakala wawa",
"enables_title": "o ken e lipu ken",
"start": "o open"
},
"map": {
"map": "sitelen ma",
"world": "ma",
"europe": "ma Elopa",
"mena": "ma Mena",
"northamerica": "ma Mewika sewi",
"oceania": "ma Osijanja",
"blacksea": "telo pimeja",
"africa": "ma Apika",
"asia": "ma Asija",
"mars": "mun Ma",
"southamerica": "ma Mewika anpa",
"britannia": "ma Pitanija",
"gatewaytotheatlantic": "ma pi poka telo Alansi",
"australia": "ma Oselija",
"random": "ma nasa",
"iceland": "ma Isilan",
"pangaea": "ma Pansija",
"japan": "ma Nijon en ma poka",
"betweentwoseas": "insa pi telo tu",
"knownworld": "ma ale",
"faroeislands": "ma telo Paja",
"deglaciatedantarctica": "ma Antasika seli",
"europeclassic": "ma Elopa (majuna)",
"falklandislands": "ma telo Palan",
"baikal": "telo Paka"
},
"map_categories": {
"continental": "ma suli",
"regional": "ma lili",
"fantasy": "ma ante"
},
"private_lobby": {
"title": "o kama tawa tomo len",
"enter_id": "o pana e nanpa tomo",
"player": "jan musi",
"players": "jan musi",
"join_lobby": "o kama tawa tomo",
"checking": "ilo li alasa e tomo...",
"not_found": "ilo li alasa ala e tomo. o lukin e nanpa tomo o alasa sin.",
"error": "ijo li pakala. o alasa sin.",
"joined_waiting": "sina kama! musi li awen tawa open..."
},
"public_lobby": {
"join": "o kama tawa musi kama",
"waiting": "jan musi {num} li awen",
"teams": "kulupu {num}"
},
"username": {
"enter_username": "o wile e nimi",
"not_string": "nimi o nimi.",
"too_short": "nimi o suli {min}.",
"too_long": "nimi o suli ala tan {max}.",
"invalid_chars": "nimi o jo taso e ijo nimi e nanpa e ala e linja e [poki nimi leko]."
},
"host_modal": {
"title": "tomo len",
"mode": "nasin",
"team_count": "nanpa kulupu",
"options_title": "ken",
"bots": "ilo: ",
"bots_disabled": "pini",
"disable_nations": "o pini e ma suli",
"instant_build": "o pali kepeken tenpo ala",
"infinite_gold": "o jo e mani ale",
"infinite_troops": "o jo e kulupu utala ale",
"enables_title": "o ken e lipu ken",
"player": "jan musi",
"players": "jan musi",
"waiting": "tomo li awen tawa jan musi...",
"start": "o open"
},
"game_starting_modal": {
"title": "musi li open...",
"desc": "tomo li kama open. o awen."
},
"difficulty": {
"difficulty": "wawa",
"Relaxed": "lili",
"Balanced": "pona",
"Intense": "wawa",
"Impossible": "ken ala"
},
"game_mode": {
"ffa": "kulupu ala",
"teams": "kulupu"
},
"select_lang": {
"title": "o wile e toki"
},
"unit_type": {
"city": "ma tomo",
"defense_post": "tomo awen",
"port": "tomo pi tomo tawa telo",
"warship": "tomo tawa telo utala",
"missile_silo": "tomo pi ilo pi pakala wawa",
"sam_launcher": "ilo tawa pi ilo sewi pi pakala wawa",
"atom_bomb": "ilo pi pakala wawa pi kipisi ijo",
"hydrogen_bomb": "ilo pi pakala wawa pi wan ijo",
"mirv": "ilo pi pakala wawa mute"
},
"user_setting": {
"title": "ken pi jan musi",
"tab_basic": "ken pona",
"tab_keybinds": "ilo luka",
"dark_mode_label": "🌙 sitelen pimeja",
"dark_mode_desc": "o ante e kule sitelen tawa walo tawa pimeja",
"emojis_label": "😊 sitelen Emosi",
"emojis_desc": "o ante e lon pi sitelen Emosi",
"anonymous_names_label": "🥷 nimi len",
"anonymous_names_desc": "o len e nimi lon pi jan musi kepeken nimi nasa lon musi sina",
"left_click_label": "🖱️ ilo luka soto li open e lipu ken",
"left_click_desc": "ni li lon la ilo luka soto li open e lipu ken la ilo luka utala li utala. ni li pini la ilo luka soto li utala taso.",
"attack_ratio_label": "⚔️ nanpa utala",
"attack_ratio_desc": "sina utala kepeken kulupu utala la o pana e kulupu suli ni (kipisi wan tawa wan ale)",
"troop_ratio_label": "🪖🛠️ kulupu utala en kulupu pali",
"troop_ratio_desc": "o ante e suli pi kulupu utala (tawa utala) e suli pi kulupu pali (tawa mani) (kipisi wan tawa wan ale)",
"easter_writing_speed_label": "nanpa pi wawa sitelen",
"easter_writing_speed_desc": "o ante e wawa pi sitelen ilo powe sina (wan tawa wan ale)",
"easter_bug_count_label": "nanpa pi pakala ilo",
"easter_bug_count_desc": "pakala ilo pi nanpa ni li pona tawa sina (pilin la, ala tawa luka luka ale)",
"view_options": "ken lukin",
"toggle_view": "o ante e lukin",
"toggle_view_desc": "o ante lukin (sijelo ma/ma jan)",
"zoom_controls": "ilo pi suli lukin",
"zoom_out": "o lukin suli",
"zoom_out_desc": "o lukin suli e sitelen ma",
"zoom_in": "o lukin lili",
"zoom_in_desc": "o lukin lili e sitelen ma",
"camera_movement": "tawa lukin",
"center_camera": "o insa e lukin",
"center_camera_desc": "o lukin e jan musi",
"move_up": "o lukin sewi",
"move_up_desc": "o lukin sewi",
"move_left": "o lukin soto",
"move_left_desc": "o lukin soto",
"move_down": "o lukin anpa",
"move_down_desc": "o lukin anpa",
"move_right": "o lukin teje",
"move_right_desc": "o lukin teje",
"reset": "o pini e ante",
"unbind": "o weka"
},
"chat": {
"title": "toki lili",
"to": "sina toki e 「{msg}」 tawa {user}",
"from": "{user} li toki e 「{msg}」 tawa sina",
"category": "kule",
"phrase": "toki",
"player": "jan musi",
"send": "o pana",
"search": "o alasa e jan musi...",
"build": "o pali e toki...",
"cat": {
"help": "o pona",
"attack": "o utala",
"defend": "o awen",
"greet": "toki",
"misc": "ante",
"warnings": "awen"
},
"help": {
"troops": "o pana e kulupu utala tawa mi a!",
"gold": "o pana e mani tawa mi a!",
"no_attack": "o utala ala e mi a!",
"sorry_attack": "mi pakala li wile ala utala.",
"alliance": "sina wile ala wile pona?",
"help_defend": "mi o awen tan [P1] la o pona e mi a!",
"team_up": "o utala kulupu e [P1] a!"
},
"attack": {
"attack": "o utala e [P1] a!",
"mirv": "o pana e ilo pi pakala wawa mute tawa [P1] a!",
"focus": "o utala e [P1] taso a!",
"finish": "o moli e [P1] a!"
},
"defend": {
"defend": "o awen e [P1] a!",
"dont_attack": "o utala ala e [P1] a!",
"ally": "[P1] li jan pona mi a!"
},
"greet": {
"hello": "toki a!",
"good_luck": "o pona a!",
"have_fun": "o musi a!",
"gg": "musi pona a!",
"nice_to_meet": "toki a!",
"well_played": "musi pona a!",
"hi_again": "toki sin a!",
"bye": "tawa pona a!",
"thanks": "pona tawa sina a!",
"oops": "mi pakala li toki powe a!",
"trust_me": "mi pona tawa sina. lon a!",
"trust_broken": "mi la sina pona tawa mi..."
},
"misc": {
"go": "o tawa a!",
"strategy": "nasin pona a!",
"fun": "musi ni li musi a!",
"pr": "tenpo seme la wile mi pi sitelen ilo sin li kama...?"
},
"warnings": {
"strong": "[P1] li wawa.",
"weak": "[P1] li wawa ala.",
"mirv_soon": "tenpo kama lili la [P1] li ken pana e ilo pi pakala wawa mute a!",
"number1_warning": "mi wan ala la tenpo kama lili la jan musi nanpa wan li sewi a!",
"stalemate": "mi tu o pona. utala ni li sama, mi tu li anpa.",
"has_allies": "[P1] li jo e jan pona mute.",
"no_allies": "[P1] li jo ala e jan pona.",
"betrayed": "[P1] li utala e jan pona ona a!",
"getting_big": "[P1] li suli wawa a!",
"danger_base": "[P1] li awen ala a!",
"saving_for_mirv": "[P1] li awen tawa ilo pi pakala wawa mute.",
"mirv_ready": "[P1] li jo e mani tawa ilo pi pakala wawa mute a!"
}
}
}
+101 -7
View File
@@ -8,6 +8,9 @@
"main": { "main": {
"title": "OpenFront (АЛЬФА)", "title": "OpenFront (АЛЬФА)",
"join_discord": "Приєднуйтеся до Discord!", "join_discord": "Приєднуйтеся до Discord!",
"login_discord": "Увійти з Discord",
"logged_in": "Вхід виконано!",
"log_out": "Вийти",
"create_lobby": "Створити лобі", "create_lobby": "Створити лобі",
"join_lobby": "Приєднатися до лобі", "join_lobby": "Приєднатися до лобі",
"single_player": "Гра наодинці", "single_player": "Гра наодинці",
@@ -98,6 +101,7 @@
"infinite_gold": "Нескінченне золото", "infinite_gold": "Нескінченне золото",
"infinite_troops": "Нескінченні війська", "infinite_troops": "Нескінченні війська",
"disable_nukes": "Відключити бомби", "disable_nukes": "Відключити бомби",
"enables_title": "Дозволи",
"start": "Розпочати гру" "start": "Розпочати гру"
}, },
"map": { "map": {
@@ -122,7 +126,15 @@
"betweentwoseas": "Поміж двох морів", "betweentwoseas": "Поміж двох морів",
"knownworld": "Відомий світ", "knownworld": "Відомий світ",
"faroeislands": "Фарерські острови", "faroeislands": "Фарерські острови",
"europeclassic": "Європа (класична)" "deglaciatedantarctica": "Розтала Антарктида",
"europeclassic": "Європа (класична)",
"falklandislands": "Фолклендські острови",
"baikal": "Байкал"
},
"map_categories": {
"continental": "Континентальні",
"regional": "Регіональні",
"fantasy": "Інші"
}, },
"private_lobby": { "private_lobby": {
"title": "Приєднатися до приватного лобі", "title": "Приєднатися до приватного лобі",
@@ -137,7 +149,8 @@
}, },
"public_lobby": { "public_lobby": {
"join": "Приєднатися до наступної гри", "join": "Приєднатися до наступної гри",
"waiting": "гравці(в) в очікуванні" "waiting": "гравці(в) в очікуванні",
"teams": "Команд: {num}"
}, },
"username": { "username": {
"enter_username": "Введіть своє ім'я гравця", "enter_username": "Введіть своє ім'я гравця",
@@ -157,7 +170,7 @@
"instant_build": "Миттєве будівництво", "instant_build": "Миттєве будівництво",
"infinite_gold": "Нескінченне золото", "infinite_gold": "Нескінченне золото",
"infinite_troops": "Нескінченні війська", "infinite_troops": "Нескінченні війська",
"disable_nukes": "Відключити бомби", "enables_title": "Дозволи",
"player": "Гравець", "player": "Гравець",
"players": "Гравці(в)", "players": "Гравці(в)",
"waiting": "Очікування гравців...", "waiting": "Очікування гравців...",
@@ -181,6 +194,17 @@
"select_lang": { "select_lang": {
"title": "Виберіть мову" "title": "Виберіть мову"
}, },
"unit_type": {
"city": "Місто",
"defense_post": "Пункт оборони",
"port": "Порт",
"warship": "Військовий корабель",
"missile_silo": "Ракетна шахта",
"sam_launcher": "Пускова установка ЗРК",
"atom_bomb": "Атомна бомба",
"hydrogen_bomb": "Воднева бомба",
"mirv": "РГЧ ІН"
},
"user_setting": { "user_setting": {
"title": "Користувацькі налаштування", "title": "Користувацькі налаштування",
"tab_basic": "Основні налаштування", "tab_basic": "Основні налаштування",
@@ -189,6 +213,8 @@
"dark_mode_desc": "Перемикання зовнішнього вигляду сайту між світлою та темною темою", "dark_mode_desc": "Перемикання зовнішнього вигляду сайту між світлою та темною темою",
"emojis_label": "😊 Емодзі", "emojis_label": "😊 Емодзі",
"emojis_desc": "Перемикання видимості емодзі під час гри", "emojis_desc": "Перемикання видимості емодзі під час гри",
"anonymous_names_label": "🥷 Приховані імена",
"anonymous_names_desc": "Приховати справжні імена гравців і замінити їх випадковими.",
"left_click_label": "🖱️ Відкриття меню лівою кнопкою миші", "left_click_label": "🖱️ Відкриття меню лівою кнопкою миші",
"left_click_desc": "УВІМКНЕНО: лівий клац відкриває меню, атака здійснюється кнопкою з мечем. ВИМКНЕНО: лівий клац здійснює атаку напряму.", "left_click_desc": "УВІМКНЕНО: лівий клац відкриває меню, атака здійснюється кнопкою з мечем. ВИМКНЕНО: лівий клац здійснює атаку напряму.",
"attack_ratio_label": "⚔️ Співвідношення атаки", "attack_ratio_label": "⚔️ Співвідношення атаки",
@@ -221,9 +247,77 @@
"reset": "Скинути", "reset": "Скинути",
"unbind": "Звільнити" "unbind": "Звільнити"
}, },
"map_categories": { "chat": {
"continental": "Континентальні", "title": "Швидкий чат",
"regional": "Регіональні", "to": "Надіслано {user}: {msg}",
"fantasy": "Інші" "from": "Від {user}: {msg}",
"category": "Категорія",
"phrase": "Фраза",
"player": "Гравець",
"send": "Надіслати",
"search": "Шукати гравця...",
"build": "Створіть своє повідомлення...",
"cat": {
"help": "Допомога",
"attack": "Напад",
"defend": "Захист",
"greet": "Привітання",
"misc": "Інше",
"warnings": "Попередження"
},
"help": {
"troops": "Будь ласка, дайте мені війська!",
"gold": "Будь ласка, дайте мені золото!",
"no_attack": "Будь ласка, не нападайте на мене!",
"sorry_attack": "Даруйте, я не хотів нападати.",
"alliance": "Альянс?",
"help_defend": "Допоможіть мені захиститися від [P1]!",
"team_up": "Об'єднаймося проти [P1]!"
},
"attack": {
"attack": "Нападайте на [P1]!",
"mirv": "Запустіть РГЧ ІН на [P1]!",
"focus": "Сконцентруйте сили на [P1]!",
"finish": "Покінчимо з [P1]!"
},
"defend": {
"defend": "Захищайте [P1]!",
"dont_attack": "Не нападайте на [P1]!",
"ally": "[P1] — мій союзник!"
},
"greet": {
"hello": "Вітання!",
"good_luck": "Щасти!",
"have_fun": "Розважайтеся!",
"gg": "GG!",
"nice_to_meet": "Приємно познайомитись!",
"well_played": "Добре зіграно!",
"hi_again": "Знову привіт!",
"bye": "Бувай!",
"thanks": "Дякую!",
"oops": "Ой, не та кнопка!",
"trust_me": "Можете довіряти мені. Обіцяю!",
"trust_broken": "Я довіряв тобі..."
},
"misc": {
"go": "Вперед!",
"strategy": "Непогана стратегія!",
"fun": "Ця гра весела!",
"pr": "Коли мій PR нарешті буде злито...?"
},
"warnings": {
"strong": "[P1] сильний.",
"weak": "[P1] слабкий.",
"mirv_soon": "[P1] скоро може запустити РГЧ ІН!",
"number1_warning": "Гравець №1 скоро переможе якщо ми не об'єднаємося!",
"stalemate": "Укладімо мир. Це нічия; ми обидва програємо.",
"has_allies": "[P1] має багато союзників.",
"no_allies": "[P1] не має союзників.",
"betrayed": "[P1] зрадив союзника!",
"getting_big": "[P1] росте занадто швидко!",
"danger_base": "[P1] незахищений!",
"saving_for_mirv": "[P1] відкладає на запуск РГЧ ІН.",
"mirv_ready": "[P1] має достатньо золота для запуску РГЧ ІН!"
}
} }
} }
+4
View File
@@ -2,6 +2,7 @@ import { LitElement, html } from "lit";
import { customElement, state } from "lit/decorators.js"; import { customElement, state } from "lit/decorators.js";
import "./LanguageModal"; import "./LanguageModal";
import ar from "../../resources/lang/ar.json";
import bg from "../../resources/lang/bg.json"; import bg from "../../resources/lang/bg.json";
import bn from "../../resources/lang/bn.json"; import bn from "../../resources/lang/bn.json";
import de from "../../resources/lang/de.json"; import de from "../../resources/lang/de.json";
@@ -17,6 +18,7 @@ import pl from "../../resources/lang/pl.json";
import pt_br from "../../resources/lang/pt_br.json"; import pt_br from "../../resources/lang/pt_br.json";
import ru from "../../resources/lang/ru.json"; import ru from "../../resources/lang/ru.json";
import sh from "../../resources/lang/sh.json"; import sh from "../../resources/lang/sh.json";
import tp from "../../resources/lang/tp.json";
import tr from "../../resources/lang/tr.json"; import tr from "../../resources/lang/tr.json";
import uk from "../../resources/lang/uk.json"; import uk from "../../resources/lang/uk.json";
@@ -32,6 +34,7 @@ export class LangSelector extends LitElement {
private dKeyPressed: boolean = false; private dKeyPressed: boolean = false;
private languageMap: Record<string, any> = { private languageMap: Record<string, any> = {
ar,
bg, bg,
bn, bn,
de, de,
@@ -48,6 +51,7 @@ export class LangSelector extends LitElement {
ru, ru,
sh, sh,
tr, tr,
tp,
uk, uk,
}; };
+31 -1
View File
@@ -21,6 +21,7 @@ import {
EmojiUpdate, EmojiUpdate,
GameUpdateType, GameUpdateType,
TargetPlayerUpdate, TargetPlayerUpdate,
UnitIncomingUpdate,
} from "../../../core/game/GameUpdates"; } from "../../../core/game/GameUpdates";
import { ClientID } from "../../../core/Schemas"; import { ClientID } from "../../../core/Schemas";
import { import {
@@ -53,6 +54,7 @@ interface Event {
priority?: number; priority?: number;
duration?: Tick; duration?: Tick;
focusID?: number; focusID?: number;
unitView?: UnitView;
} }
@customElement("events-display") @customElement("events-display")
@@ -89,6 +91,7 @@ export class EventsDisplay extends LitElement implements Layer {
[GameUpdateType.BrokeAlliance, (u) => this.onBrokeAllianceEvent(u)], [GameUpdateType.BrokeAlliance, (u) => this.onBrokeAllianceEvent(u)],
[GameUpdateType.TargetPlayer, (u) => this.onTargetPlayerEvent(u)], [GameUpdateType.TargetPlayer, (u) => this.onTargetPlayerEvent(u)],
[GameUpdateType.Emoji, (u) => this.onEmojiMessageEvent(u)], [GameUpdateType.Emoji, (u) => this.onEmojiMessageEvent(u)],
[GameUpdateType.UnitIncoming, (u) => this.onUnitIncomingEvent(u)],
]); ]);
constructor() { constructor() {
@@ -424,6 +427,25 @@ export class EventsDisplay extends LitElement implements Layer {
} }
} }
onUnitIncomingEvent(event: UnitIncomingUpdate) {
const myPlayer = this.game.playerByClientID(this.clientID);
if (!myPlayer || myPlayer.smallID() !== event.playerID) {
return;
}
const unitView = this.game.unit(event.unitID);
this.addEvent({
description: event.message,
type: event.messageType,
unsafeDescription: false,
highlight: true,
createdAt: this.game.ticks(),
unitView: unitView,
});
}
private getMessageTypeClasses(type: MessageType): string { private getMessageTypeClasses(type: MessageType): string {
switch (type) { switch (type) {
case MessageType.SUCCESS: case MessageType.SUCCESS:
@@ -651,7 +673,15 @@ export class EventsDisplay extends LitElement implements Layer {
> >
${this.getEventDescription(event)} ${this.getEventDescription(event)}
</button>` </button>`
: this.getEventDescription(event)} : event.unitView
? html`<button
@click=${() => {
this.emitGoToUnitEvent(event.unitView);
}}
>
${this.getEventDescription(event)}
</button>`
: this.getEventDescription(event)}
${event.buttons ${event.buttons
? html` ? html`
<div class="flex flex-wrap gap-1.5 mt-1"> <div class="flex flex-wrap gap-1.5 mt-1">
+3
View File
@@ -6,6 +6,9 @@ export const preprodConfig = new (class extends DefaultServerConfig {
return GameEnv.Preprod; return GameEnv.Preprod;
} }
numWorkers(): number { numWorkers(): number {
if (process.env.SUBDOMAIN !== "main") {
return 2;
}
return 3; return 3;
} }
jwtAudience(): string { jwtAudience(): string {
+2 -1
View File
@@ -81,7 +81,8 @@ export class MirvExecution implements Execution {
this.separateDst = this.mg.ref(x, y); this.separateDst = this.mg.ref(x, y);
this.pathFinder.computeControlPoints(spawn, this.separateDst); this.pathFinder.computeControlPoints(spawn, this.separateDst);
this.mg.displayMessage( this.mg.displayIncomingUnit(
this.nuke.id(),
`⚠️⚠️⚠️ ${this.player.name()} - MIRV INBOUND ⚠️⚠️⚠️`, `⚠️⚠️⚠️ ${this.player.name()} - MIRV INBOUND ⚠️⚠️⚠️`,
MessageType.ERROR, MessageType.ERROR,
this.targetPlayer.id(), this.targetPlayer.id(),
+5 -3
View File
@@ -119,14 +119,16 @@ export class NukeExecution implements Execution {
if (this.mg.hasOwner(this.dst)) { if (this.mg.hasOwner(this.dst)) {
const target = this.mg.owner(this.dst) as Player; const target = this.mg.owner(this.dst) as Player;
if (this.type === UnitType.AtomBomb) { if (this.type === UnitType.AtomBomb) {
this.mg.displayMessage( this.mg.displayIncomingUnit(
this.nuke.id(),
`${this.player.name()} - atom bomb inbound`, `${this.player.name()} - atom bomb inbound`,
MessageType.ERROR, MessageType.ERROR,
target.id(), target.id(),
); );
} }
if (this.type === UnitType.HydrogenBomb) { if (this.type === UnitType.HydrogenBomb) {
this.mg.displayMessage( this.mg.displayIncomingUnit(
this.nuke.id(),
`${this.player.name()} - hydrogen bomb inbound`, `${this.player.name()} - hydrogen bomb inbound`,
MessageType.ERROR, MessageType.ERROR,
target.id(), target.id(),
@@ -142,7 +144,7 @@ export class NukeExecution implements Execution {
); );
} }
// after sending an nuke set the missilesilo on cooldown // after sending a nuke set the missilesilo on cooldown
const silo = this.player const silo = this.player
.units(UnitType.MissileSilo) .units(UnitType.MissileSilo)
.find((silo) => silo.tile() === spawn); .find((silo) => silo.tile() === spawn);
+10 -9
View File
@@ -67,15 +67,6 @@ export class TransportShipExecution implements Execution {
this.attacker = mg.player(this.attackerID); this.attacker = mg.player(this.attackerID);
// Notify the target player about the incoming naval invasion
if (this.targetID && this.targetID !== mg.terraNullius().id()) {
mg.displayMessage(
`Naval invasion incoming from ${this.attacker.displayName()}`,
MessageType.WARN,
this.targetID,
);
}
if ( if (
this.attacker.units(UnitType.TransportShip).length >= this.attacker.units(UnitType.TransportShip).length >=
mg.config().boatMaxNumber() mg.config().boatMaxNumber()
@@ -145,6 +136,16 @@ export class TransportShipExecution implements Execution {
this.boat = this.attacker.buildUnit(UnitType.TransportShip, this.src, { this.boat = this.attacker.buildUnit(UnitType.TransportShip, this.src, {
troops: this.troops, troops: this.troops,
}); });
// Notify the target player about the incoming naval invasion
if (this.targetID && this.targetID !== mg.terraNullius().id()) {
mg.displayIncomingUnit(
this.boat.id(),
`Naval invasion incoming from ${this.attacker.displayName()}`,
MessageType.WARN,
this.targetID,
);
}
} }
tick(ticks: number) { tick(ticks: number) {
+6
View File
@@ -545,6 +545,12 @@ export interface Game extends GameMap {
type: MessageType, type: MessageType,
playerID: PlayerID | null, playerID: PlayerID | null,
): void; ): void;
displayIncomingUnit(
unitID: number,
message: string,
type: MessageType,
playerID: PlayerID,
): void;
displayChat( displayChat(
message: string, message: string,
+18
View File
@@ -635,6 +635,24 @@ export class GameImpl implements Game {
recipient: recipient, recipient: recipient,
}); });
} }
displayIncomingUnit(
unitID: number,
message: string,
type: MessageType,
playerID: PlayerID,
): void {
const id = this.player(playerID).smallID();
this.addUpdate({
type: GameUpdateType.UnitIncoming,
unitID: unitID,
message: message,
messageType: type,
playerID: id,
});
}
addUnit(u: Unit) { addUnit(u: Unit) {
this.unitGrid.addUnit(u); this.unitGrid.addUnit(u);
} }
+11 -1
View File
@@ -38,6 +38,7 @@ export enum GameUpdateType {
Emoji, Emoji,
Win, Win,
Hash, Hash,
UnitIncoming,
} }
export type GameUpdate = export type GameUpdate =
@@ -53,7 +54,8 @@ export type GameUpdate =
| TargetPlayerUpdate | TargetPlayerUpdate
| EmojiUpdate | EmojiUpdate
| WinUpdate | WinUpdate
| HashUpdate; | HashUpdate
| UnitIncomingUpdate;
export interface TileUpdateWrapper { export interface TileUpdateWrapper {
type: GameUpdateType.Tile; type: GameUpdateType.Tile;
@@ -182,3 +184,11 @@ export interface HashUpdate {
tick: Tick; tick: Tick;
hash: number; hash: number;
} }
export interface UnitIncomingUpdate {
type: GameUpdateType.UnitIncoming;
unitID: number;
message: string;
messageType: MessageType;
playerID: number;
}
+5 -1
View File
@@ -104,4 +104,8 @@ else
fi fi
# Start supervisord # Start supervisord
exec /usr/bin/supervisord -c /etc/supervisor/conf.d/supervisord.conf if [ "$DOMAIN" = openfront.dev ] && [ "$SUBDOMAIN" != main ]; then
timeout 24h /usr/bin/supervisord -c /etc/supervisor/conf.d/supervisord.conf
else
exec /usr/bin/supervisord -c /etc/supervisor/conf.d/supervisord.conf
fi