From 39b664e97d9c347f48eba478bc24eecb3f78e9d9 Mon Sep 17 00:00:00 2001 From: mooondark <40036185+mooondark@users.noreply.github.com> Date: Sun, 31 Dec 2023 16:11:30 +0100 Subject: [PATCH] i18n: More FR translations --- .../data/06-ew/dungeon/aloalo_island.ts | 2 + ui/raidboss/data/00-misc/test.ts | 3 +- .../data/00-misc/the_masked_carnivale.ts | 48 ++++++++++++++++++- ui/raidboss/data/03-hw/raid/a7s.ts | 12 ++++- .../04-sb/map/the_hidden_canals_of_uznair.ts | 2 + .../04-sb/map/the_lost_canals_of_uznair.ts | 1 + .../map/the_shifting_altars_of_uznair.ts | 4 ++ .../04-sb/ultimate/ultima_weapon_ultimate.ts | 42 +++++++++++++++- 8 files changed, 109 insertions(+), 5 deletions(-) diff --git a/ui/oopsyraidsy/data/06-ew/dungeon/aloalo_island.ts b/ui/oopsyraidsy/data/06-ew/dungeon/aloalo_island.ts index 073ddaeed7..09eb009296 100644 --- a/ui/oopsyraidsy/data/06-ew/dungeon/aloalo_island.ts +++ b/ui/oopsyraidsy/data/06-ew/dungeon/aloalo_island.ts @@ -184,6 +184,7 @@ const triggerSet: OopsyTriggerSet = { // Corresponds to 0x8CDC ability en: 'Targeted Light', de: 'Gezieltes Licht', + fr: 'Lumière ciblée', }, }; }, @@ -192,6 +193,7 @@ const triggerSet: OopsyTriggerSet = { // Corresponds to 0x8946 ability en: 'Fair Flight', de: 'Feenflug', + fr: 'Vol équitable', }), ], }; diff --git a/ui/raidboss/data/00-misc/test.ts b/ui/raidboss/data/00-misc/test.ts index f41da01e60..ea0204fda8 100644 --- a/ui/raidboss/data/00-misc/test.ts +++ b/ui/raidboss/data/00-misc/test.ts @@ -434,13 +434,14 @@ const triggerSet: TriggerSet = { }, { locale: 'fr', - missingTranslations: true, replaceSync: { 'cactbot lang': 'cactbot langue', 'cactbot test response': 'cactbot test de réponse', 'cactbot test watch': 'cactbot test d\'observation', 'cactbot test config': 'test de configuration de cactbot', 'cactbot test combatant cast': 'test d\'incantation d\'un combatant', + 'cactbot test outputStrings': 'cactbot test outputStrings', + 'testNetRegexTimeline': 'testNetRegexTimeline', 'You bid farewell to the striking dummy': 'Vous faites vos adieux au mannequin d\'entraînement', 'You bow courteously to the striking dummy': diff --git a/ui/raidboss/data/00-misc/the_masked_carnivale.ts b/ui/raidboss/data/00-misc/the_masked_carnivale.ts index 4b9c6ae3f4..5a85ade360 100644 --- a/ui/raidboss/data/00-misc/the_masked_carnivale.ts +++ b/ui/raidboss/data/00-misc/the_masked_carnivale.ts @@ -22,6 +22,7 @@ const triggerSet: TriggerSet = { zoneLabel: { en: 'The Masked Carnivale', de: 'Die Große Maskerade', + fr: 'Le carnaval masqué', cn: '假面狂欢', ko: '가면 무투회', }, @@ -184,6 +185,7 @@ const triggerSet: TriggerSet = { text: { en: 'Arena Roselets spawning!', de: 'Arena-Röslinge erscheinen!', + fr: 'Roses d\'arène vient d\'apparaitre !', cn: '正在生成 斗场小红花!', ko: '넝쿨장미 소환됨!', }, @@ -312,6 +314,7 @@ const triggerSet: TriggerSet = { text: { en: 'Diamondback', de: 'Diamantrücken', + fr: 'Dos de diamant', cn: '超硬化', ko: '초경화', }, @@ -326,6 +329,7 @@ const triggerSet: TriggerSet = { text: { en: 'Charge + knockback', de: 'Ansturm + Rückstoß', + fr: 'Charge + Poussée', cn: '冲锋 + 击退', ko: '돌진 + 넉백', }, @@ -341,6 +345,7 @@ const triggerSet: TriggerSet = { text: { en: 'Away from front + in', de: 'Weg von Vorne + Rein', + fr: 'Loin de l\'avant + intérieur', cn: '避开正面 + 去下方', ko: '보스 전방 피하기 + 안으로', }, @@ -368,6 +373,7 @@ const triggerSet: TriggerSet = { text: { en: 'Charge + knockback', de: 'Ansturm + Rückstoß', + fr: 'Ruée + Poussée', cn: '冲锋 + 击退', ko: '돌진 + 넉백', }, @@ -392,6 +398,7 @@ const triggerSet: TriggerSet = { text: { en: 'Fireball', de: 'Feuerball', + fr: 'Boule de feu', cn: '火球', ko: '화염구', }, @@ -410,6 +417,7 @@ const triggerSet: TriggerSet = { text: { en: 'Magic reflect', de: 'Magische Reflektion', + fr: 'Réflexion magique', cn: '反弹魔法伤害', ko: '마법공격 반사됨', }, @@ -433,6 +441,7 @@ const triggerSet: TriggerSet = { text: { en: 'Blind yourself or Look Away', de: 'Erblinden oder schau weg', + fr: 'Aveuglez-vous ou regardez ailleurs', cn: '致盲自己或看向其他方向', ko: '나한테 실명걸기 또는 뒤돌기', }, @@ -450,6 +459,7 @@ const triggerSet: TriggerSet = { text: { en: 'Diamondback', de: 'Diamantrücken', + fr: 'Dos de diamant', cn: '超硬化', ko: '초경화', }, @@ -543,6 +553,7 @@ const triggerSet: TriggerSet = { text: { en: 'Get to Safe Spot', de: 'Geh zur sicheren Stelle', + fr: 'Allez dans la zone sûre', cn: '去安全区', ko: '안전지대 찾기', }, @@ -585,6 +596,7 @@ const triggerSet: TriggerSet = { pullToBoss: { en: 'Pull ${name} to boss', de: 'Ziehe ${name} zum Boss', + fr: 'Attirez ${name} vers le boss', cn: '将 ${name} 拉到BOSS处', ko: '보스쪽으로 ${name} 끌고오기', }, @@ -603,6 +615,7 @@ const triggerSet: TriggerSet = { text: { en: 'Diamondback', de: 'Diamantrücken', + fr: 'Dos de diamant', cn: '超硬化', ko: '초경화', }, @@ -630,6 +643,7 @@ const triggerSet: TriggerSet = { text: { en: 'Cleanse debuff or mitigate', de: 'Debuff entfernen oder mitigieren', + fr: 'Guérissez les débuffs ou mitigez', cn: '驱散DEBUFF或减伤', ko: '디버프 해제 또는 생존기', }, @@ -651,6 +665,7 @@ const triggerSet: TriggerSet = { text: { en: 'Knockback into Safe Spot', de: 'Rückstoß zur sicheren Stelle', + fr: 'Poussée vers la zone sûre', cn: '击退到安全区', ko: '안전지대로 넉백되기', }, @@ -674,6 +689,7 @@ const triggerSet: TriggerSet = { text: { en: 'Physical reflect', de: 'Physische Reflektion', + fr: 'Réflexion physique', cn: '反弹物理伤害', ko: '물리공격 반사됨', }, @@ -702,6 +718,7 @@ const triggerSet: TriggerSet = { text: { en: 'Magic reflect', de: 'Magische Reflektion', + fr: 'Réflexion magique', cn: '反弹魔法伤害', ko: '마법공격 반사됨', }, @@ -726,6 +743,7 @@ const triggerSet: TriggerSet = { dispel: { en: 'Dispel ${name}', de: 'Entferne ${name}', + fr: 'Dissipez ${name}', cn: '清除 ${name}', ko: '${name} 버프 해제', }, @@ -748,6 +766,7 @@ const triggerSet: TriggerSet = { dispel: { en: 'Dispel ${name}', de: 'Entferne ${name}', + fr: 'Dissipez ${name}', cn: '清除 ${name}', ko: '${name} 버프 해제', }, @@ -772,6 +791,7 @@ const triggerSet: TriggerSet = { text: { en: 'Cleanse debuff', de: 'Debuff entfernen', + fr: 'Guérissez le débuff', cn: '驱散DEBUFF', ko: '디버프 해제', }, @@ -839,6 +859,7 @@ const triggerSet: TriggerSet = { text: { en: 'Avoid puddles', de: 'Vermeide Flächen', + fr: 'Évitez les flaques', cn: '躲避圈圈', ko: '장판 피하기', }, @@ -869,6 +890,7 @@ const triggerSet: TriggerSet = { forward: { en: 'March Forward into Safe Spot', de: 'marschiere Vorwärts in die sichere Stelle', + fr: 'Marche avant forcée en zone sûre', ja: '強制移動: 前', cn: '向前强制移动到安全区', ko: '강제 이동 앞', @@ -876,6 +898,7 @@ const triggerSet: TriggerSet = { backward: { en: 'March Backward into Safe Spot', de: 'marschiere Rückwärts in die sichere Stelle', + fr: 'Marche arrière forcée en zone sûre', ja: '強制移動: 後ろ', cn: '向后强制移动到安全区', ko: '강제 이동 뒤', @@ -883,6 +906,7 @@ const triggerSet: TriggerSet = { left: { en: 'March Left into Safe Spot', de: 'marschiere Links in die sichere Stelle', + fr: 'Marche à gauche forcée en zone sûre', ja: '強制移動: 左', cn: '向左强制移动到安全区', ko: '강제 이동 왼쪽', @@ -890,6 +914,7 @@ const triggerSet: TriggerSet = { right: { en: 'March Right into Safe Spot', de: 'marschiere Rechts in die sichere Stelle', + fr: 'Marche à droite forcée en zone sûre', ja: '強制移動: 右', cn: '向右强制移动到安全区', ko: '강제 이동 오른쪽', @@ -913,6 +938,7 @@ const triggerSet: TriggerSet = { text: { en: 'Bait two Eruptions', de: 'Köder 2 Eruptionen', + fr: 'Attirez 2 éruptions', cn: '诱导2个地火', ko: '장판 2개 유도', }, @@ -952,6 +978,7 @@ const triggerSet: TriggerSet = { text: { en: 'Get to Safe Spot', de: 'Geh zur sicheren Stelle', + fr: 'Allez en zone sûre', cn: '去安全区', ko: '안전지대 찾기', }, @@ -967,6 +994,7 @@ const triggerSet: TriggerSet = { text: { en: 'Get to edge', de: 'Geh zu einem Rand', + fr: 'Allez sur le bord', cn: '去场边', ko: '외곽으로', }, @@ -982,7 +1010,7 @@ const triggerSet: TriggerSet = { text: { en: 'Run Away From Boss', de: 'Renn weg vom Boss', - fr: 'Courez loin du boss', + fr: 'Éloignez-vous du boss', ja: 'ボスから離れる', cn: '远离Boss', ko: '보스와 거리 벌리기', @@ -1015,6 +1043,7 @@ const triggerSet: TriggerSet = { text: { en: 'Cleanse debuff', de: 'Debuff entfernen', + fr: 'Guérissez le débuff', cn: '驱散DEBUFF', ko: '디버프 해제', }, @@ -1059,6 +1088,7 @@ const triggerSet: TriggerSet = { text: { en: 'Bait two aoes', de: 'Köder 2 AoEs', + fr: 'Attirez 2 AoEs', cn: '诱导2个AOE', ko: '장판 2개 유도', }, @@ -1073,6 +1103,7 @@ const triggerSet: TriggerSet = { text: { en: 'Adds soon', de: 'Bald Adds', + fr: 'Adds bientôt', cn: '小怪即将出现', ko: '곧 쫄 나옴', }, @@ -1094,6 +1125,7 @@ const triggerSet: TriggerSet = { text: { en: 'Diamondback', de: 'Diamantrücken', + fr: 'Dos de diamant', cn: '超硬化', ko: '초경화', }, @@ -1110,6 +1142,7 @@ const triggerSet: TriggerSet = { text: { en: 'Away from water tornadoes', de: 'Weg von den Wassertornados', + fr: 'Éloignez-vous des tornades d\'eau', cn: '远离水龙卷', ko: '물기둥에서 멀리 떨어지기', }, @@ -1126,6 +1159,7 @@ const triggerSet: TriggerSet = { text: { en: 'Magic reflect', de: 'Magische Reflektion', + fr: 'Réflexion magique', cn: '反弹魔法伤害', ko: '마법공격 반사됨', }, @@ -1142,6 +1176,7 @@ const triggerSet: TriggerSet = { text: { en: 'Cleanse debuff', de: 'Debuff entfernen', + fr: 'Guérissez le débuff', cn: '驱散DEBUFF', ko: '디버프 해제', }, @@ -1156,6 +1191,7 @@ const triggerSet: TriggerSet = { text: { en: 'Bait three aoes', de: 'Köder 3 AoEs', + fr: 'Attirez 3 AoEs', cn: '诱导3个AOE', ko: '장판 3개 유도', }, @@ -1171,6 +1207,7 @@ const triggerSet: TriggerSet = { text: { en: 'Knockback into Safe Spot', de: 'Rückstoß zur sicheren Stelle', + fr: 'Poussée vers la zone sûre', cn: '击退到安全区', ko: '안전지대로 넉백되기', }, @@ -1187,6 +1224,7 @@ const triggerSet: TriggerSet = { text: { en: 'Get in + Knockback', de: 'Geh rein + Rückstoß', + fr: 'Intérieur + Poussée', cn: '去脚下 + 击退', ko: '안으로 + 넉백', }, @@ -1202,6 +1240,7 @@ const triggerSet: TriggerSet = { text: { en: 'Get to Safe Spot (between two ice)', de: 'Geh zur sicheren Stelle (zwischen 2 Eis)', + fr: 'Allez en zone sûre (entre deux glaces)', cn: '去安全区 (两个冰之间)', ko: '안전지대 찾기 (얼음 없는쪽)', }, @@ -1239,6 +1278,7 @@ const triggerSet: TriggerSet = { text: { en: 'Bait two aoes', de: 'Köder 2 AoEs', + fr: 'Attirez 2 AoEs', cn: '诱导2个AOE', ko: '장판 2개 유도', }, @@ -1278,6 +1318,7 @@ const triggerSet: TriggerSet = { text: { en: 'Add soon', de: 'Bald Add', + fr: 'Add bientôt', cn: '小怪即将出现', ko: '분신 등장', }, @@ -1293,6 +1334,7 @@ const triggerSet: TriggerSet = { dispel: { en: 'Dispel ${name}', de: 'Entferne ${name}', + fr: 'Dissipez ${name}', cn: '清除 ${name}', ko: '${name} 버프 해제', }, @@ -1310,6 +1352,7 @@ const triggerSet: TriggerSet = { text: { en: 'Away from boss => Stop Everything', de: 'Weg vom Boss => Stoppe alles', + fr: 'Éloignez-vous du boss => Arrêtez tout', cn: '远离BOSS => 停停停', ko: '보스와 멀리 떨어지기 => 행동 멈추기', }, @@ -1329,6 +1372,7 @@ const triggerSet: TriggerSet = { text: { en: 'Diamondback', de: 'Diamantrücken', + fr: 'Dos de diamant', cn: '超硬化', ko: '초경화', }, @@ -1347,6 +1391,7 @@ const triggerSet: TriggerSet = { text: { en: 'Cleanse both debuffs', de: 'Entferne beide Debuffs', + fr: 'Guérissez les deux débuffs', cn: '驱散两个DEBUFF', ko: '디버프 둘다 해제', }, @@ -1376,6 +1421,7 @@ const triggerSet: TriggerSet = { text: { en: 'Cleanse debuff', de: 'Debuff entfernen', + fr: 'Guérissez le débuff', cn: '驱散DEBUFF', ko: '디버프 해제', }, diff --git a/ui/raidboss/data/03-hw/raid/a7s.ts b/ui/raidboss/data/03-hw/raid/a7s.ts index 39c61d7028..88e498cfd6 100644 --- a/ui/raidboss/data/03-hw/raid/a7s.ts +++ b/ui/raidboss/data/03-hw/raid/a7s.ts @@ -277,7 +277,6 @@ const triggerSet: TriggerSet = { }, { 'locale': 'fr', - 'missingTranslations': true, 'replaceSync': { 'Bomb': 'bombe', 'Boomtype Magitek Gobwalker G-VII': 'gobblindé magitek G-VII Lamineur', @@ -290,14 +289,23 @@ const triggerSet: TriggerSet = { 'The electrocution gallery': 'square d\'exécution publique', }, 'replaceText': { + 'Big Doll': 'Grosse poupée', 'Bomb': 'Bombe', + '(? = { text: { en: 'Canal Crew spawned, kill in order!', de: 'Kanal-Mandragora erscheinen, in Reihenfolge besiegen!', + fr: 'Les mandragores du canal apparaissent, tuez les dans l\'ordre', cn: '已生成 运河蔓德拉战队, 依次击杀!', ko: '만드라즈 등장, 순서대로 잡기!', }, diff --git a/ui/raidboss/data/04-sb/map/the_lost_canals_of_uznair.ts b/ui/raidboss/data/04-sb/map/the_lost_canals_of_uznair.ts index 58ac86531d..02f9902c81 100644 --- a/ui/raidboss/data/04-sb/map/the_lost_canals_of_uznair.ts +++ b/ui/raidboss/data/04-sb/map/the_lost_canals_of_uznair.ts @@ -10,6 +10,7 @@ const uznairOutputStrings = { spawn: { en: '${name} spawned!', de: '${name} erscheint!', + fr: '${name} apparaît !', cn: '已生成 ${name}!', ko: '${name} 등장!', }, diff --git a/ui/raidboss/data/04-sb/map/the_shifting_altars_of_uznair.ts b/ui/raidboss/data/04-sb/map/the_shifting_altars_of_uznair.ts index d3e97d768e..ba83ba34e6 100644 --- a/ui/raidboss/data/04-sb/map/the_shifting_altars_of_uznair.ts +++ b/ui/raidboss/data/04-sb/map/the_shifting_altars_of_uznair.ts @@ -11,12 +11,14 @@ const uznairOutputStrings = { spawn: { en: '${name} spawned!', de: '${name} erscheint!', + fr: '${name} apparaît !', cn: '已生成 ${name}!', ko: '${name} 등장!', }, adds: { en: 'Adds soon', de: 'Bald Adds', + fr: 'Adds bientôt', cn: '小怪即将出现', ko: '곧 쫄 나옴', }, @@ -69,6 +71,7 @@ const triggerSet: TriggerSet = { text: { en: 'Altar Assembly spawned, kill in order!', de: 'Altar-Mandragora erscheinen, in Reihenfolge besiegen!', + fr: 'Les mandragores d\'Altar apparaissent, tuez les dans l\'ordre', cn: '已生成 神殿蔓德拉战队, 依次击杀!', ko: '만드라즈 등장, 순서대로 잡기!', }, @@ -125,6 +128,7 @@ const triggerSet: TriggerSet = { text: { en: 'Bait three puddles', de: '3 Flächen ködern', + fr: 'Déposez 3 flaques', cn: '诱导三个圈圈', ko: '장판 3개 유도', }, diff --git a/ui/raidboss/data/04-sb/ultimate/ultima_weapon_ultimate.ts b/ui/raidboss/data/04-sb/ultimate/ultima_weapon_ultimate.ts index d320de36fe..2d8a8fae2c 100644 --- a/ui/raidboss/data/04-sb/ultimate/ultima_weapon_ultimate.ts +++ b/ui/raidboss/data/04-sb/ultimate/ultima_weapon_ultimate.ts @@ -81,6 +81,7 @@ const gaolConfig = (id: GaolKey): NamedConfigEntry => { name: { en: `Titan Gaol Order ${numStr}`, de: `Titan Gefängnis Reihenfolge ${numStr}`, + fr: `Ordre geôle de Titan ${numStr}`, cn: `泰坦石牢顺序 ${numStr}`, ko: `돌감옥 순서 ${numStr}`, }, @@ -105,6 +106,8 @@ const triggerSet: TriggerSet = { 'Each entry can be the three letter job (e.g. "war" or "SGE") or the full name (e.g. "Tini Poutini"), all case insensitive. Smaller numbers will be listed first in the gaol order. Duplicate jobs will sort players alphabetically. Anybody not listed will be added to the end alphabetically. Blank entries are ignored. If players are listed multiple times by name or job, the lower number will be considered.', de: 'Jeder Eintrag kann aus drei Buchstaben des Jobs bestehen (z. B. "war" oder "SGE") oder aus dem vollständigen Namen (z. B. "Tini Poutini"), wobei Groß- und Kleinschreibung nicht berücksichtigt werden. Kleinere Nummern werden in der Reihenfolge der Gefängnisse zuerst aufgeführt. Bei doppelten Aufträgen werden die Spieler alphabetisch sortiert. Jeder nicht aufgeführte Spieler wird am Ende alphabetisch eingeordnet. Leere Einträge werden ignoriert. Wenn Spieler mehrfach nach Namen oder Beruf aufgelistet sind, wird die niedrigere Nummer berücksichtigt.', + fr: + 'Chaque entrée peut être désigné par les jobs en trois lettres (par exemple "war" ou "SGE") ou le nom complet (par exemple "Tini Poutini"), sans tenir compte des majuscules et minuscules. Les plus petits numéros seront classés en premier dans l\'ordre des geôles. Les doublons seront classés par ordre alphabétique. Toute personne ne figurant pas sur la liste sera ajoutée à la fin par ordre alphabétique. Les entrées vides sont ignorées. Si des joueurs sont listés plusieurs fois par nom ou par fonction, le numéro le plus bas sera pris en compte.', cn: '每个条目可以是三个字母的职业缩写 (例如 "war" 或 "SGE") 或玩家全名(例如 "Tini Poutini"),所有字母不区分大小写。编号较小的将在石牢顺序中排列在前。重复的职业将按姓名字母顺序对玩家进行排序。未列出的队员将按字母顺序添加到末尾。空白条目将被忽略。如果玩家按姓名或职业被多次列出,则以较小编号为准。', ko: @@ -188,6 +191,7 @@ const triggerSet: TriggerSet = { text: { en: 'Eruption Baits', de: 'Köder Eruption', + fr: 'Attirez les éruptions', cn: '诱导地火', ko: '용암 분출 유도', }, @@ -305,6 +309,7 @@ const triggerSet: TriggerSet = { tankCleavePartyOut: { en: 'Tank Cleave (PARTY OUT)', de: 'Tank Cleave (GRUPPE RAUS)', + fr: 'Tank cleave (Groupe à l\'extérieur)', cn: '坦克顺劈 (人群出)', ko: '광역 탱버 (본대 밖으로)', }, @@ -406,6 +411,8 @@ const triggerSet: TriggerSet = { 'Where the two sisters are for the tanks to block. dir1 is always the first sister location starting North and going clockwise', de: 'Wo sich die beiden Schwestern befinden, die die Tanks blockieren sollen. dir1 ist immer die erste Schwester, die im Norden beginnt und im Uhrzeigersinn verläuft.', + fr: + 'L\'emplacement des deux sœurs à bloquer pour les tanks. dir1 est toujours le premier emplacement de la sœur en commençant par le nord et en allant dans le sens des aiguilles d\'une montre.', cn: '两分身待坦克阻挡的位置。dir1 始终是从上 (北) 开始顺时针方向的第一个分身位置', ko: '탱커가 막을 두 분신의 위치. dir1은 북쪽에서 시계방향으로 도는 것을 기준으로 항상 첫 번째 분신의 위치입니다', }, @@ -461,6 +468,7 @@ const triggerSet: TriggerSet = { text: { en: 'Sisters: ${dir1} / ${dir2}', de: 'Schwestern: ${dir1} / ${dir2}', + fr: 'Sœurs : ${dir1} / ${dir2}', cn: '分身:${dir1} / ${dir2}', ko: '분신: ${dir1} / ${dir2}', }, @@ -484,6 +492,7 @@ const triggerSet: TriggerSet = { garuda2: { en: 'Get Sister Tether!!!', de: 'Nimm Verbindung von der Schwester!!!', + fr: 'Prenez le lien de la sœur !!!', cn: '接分身的线!!!', ko: '분신 줄 가져가기!!!', }, @@ -491,6 +500,7 @@ const triggerSet: TriggerSet = { garuda1: { en: 'Sister Tethers', de: 'Schwester Verbindungen', + fr: 'Lien de la sœur', cn: '分身连线', ko: '분신 줄', }, @@ -498,6 +508,7 @@ const triggerSet: TriggerSet = { annihilation1: { en: 'Tether', de: 'Verbindungen', + fr: 'Lien', cn: '连线', ko: '줄', }, @@ -505,6 +516,7 @@ const triggerSet: TriggerSet = { suppression1: { en: 'Tether!!!', de: 'Verbindungen!!!', + fr: 'Lien !!!', cn: '连线!!!', ko: '줄!!!', }, @@ -601,6 +613,7 @@ const triggerSet: TriggerSet = { text: { en: 'Ifrit ${dir}', de: 'Ifrit ${dir}', + fr: 'Ifrit ${dir}', cn: '火神 ${dir}', ko: '이프리트 ${dir}', }, @@ -717,6 +730,7 @@ const triggerSet: TriggerSet = { text: { en: 'Near: ${dir}', de: 'Nahe: ${dir}', + fr: 'Proche : ${dir}', cn: '近: ${dir}', ko: '가까운 기둥: ${dir}', }, @@ -801,6 +815,7 @@ const triggerSet: TriggerSet = { fetters: { en: 'Fetters (w/${player})', de: 'Fesseln (mit ${player})', + fr: 'Entraves (avec ${player})', cn: '锁链 (与 /${player})', ko: '사슬 (+${player})', }, @@ -849,6 +864,9 @@ const triggerSet: TriggerSet = { `Wenn der erste Nagel SO ist, wird dies SO/NW sowohl für Umgekehrtes-Z als auch für Normal-Z aufgerufen. Wenn der erste Nagel S ist, wird dies SO/NW für Umgekehrtes-Z und SW/NO für Normal-Z aufgerufen. Andere Nagelreihenfolgen werden ebenfalls unterstützt, dies sind nur Beispiele.`, + fr: `Si le premier clou est SE, on annoncera SE/NO pour les Z inversés et les Z normaux. + Si le premier clou est S, on annoncera SE/NO pour la zone inversée et SW/NO pour la zone normale. + D'autres ordres de clous sont également possibles, il ne s'agit que d'exemples.`, cn: `如果第一个火神柱在东南,则反向 Z 和正常 Z 都会提示东南/西北 如果第一个火神柱在南, 则反向 Z 将提示东南/西北,正常 Z 将提示西南/东北。 这些只是示例, 还支持其他火神柱顺序。`, @@ -885,6 +903,7 @@ const triggerSet: TriggerSet = { intercardSafeSpot: { en: '${dir1} / ${dir2}', de: '${dir1} / ${dir2}', + fr: '${dir1} / ${dir2}', cn: '${dir1} / ${dir2}', ko: '${dir1} / ${dir2}', }, @@ -901,6 +920,10 @@ const triggerSet: TriggerSet = { `Wenn der erste Nagel Interkardinal war, dann ist der erste Ifrit-Ansturm auf einer Interkardinalen und dieser optionale Aufruf besteht darin, sich in die Nähe dieses ersten Ansturms zu bewegen. Wenn man bereits in Sicherheit ist, wird dies nicht aufgerufen.`, + fr: + `Si le premier clou était en intercardinal, alors le premier dash d'Ifrit est en intercardinal + et cette annonce optionnelle vous préviens de vous déplacer pour être adjacent à ce premier dash. + Si vous êtes déjà en sécurité, cette option n'est pas activée.`, cn: `如果第一个火神柱在对角线上,那么第一次火神冲也在对角线上。 这个可选提示会提示你移动到第一次火神冲附近的位置。 如果你已在安全区,则不会输出此提示。`, @@ -933,6 +956,7 @@ const triggerSet: TriggerSet = { text: { en: 'Adjust 45° ${rotation}', de: 'Rotiere 45° ${rotation}', + fr: 'Ajustez de 45° ${rotation}', cn: '${rotation} 旋转 45°', ko: '${rotation} 45° 이동', }, @@ -952,6 +976,11 @@ const triggerSet: TriggerSet = { Sowohl die Gruppe als auch der Heiler bewegen sich entweder um 45 oder 90 Grad. Es ist eine "schnelle" Bewegung, wenn man sich schnell bewegen muss, um dem Ifrit-Folgeschlag auszuweichen. Es ist eine "langsame" Bewegung, wenn man mehr Zeit hat, dies zu tun.`, + fr: + `Il s'agit du mouvement principal pour les dashs d'Ifrit qui commencent à côté du premier dash. + Le groupe et le soigneur se déplacent de 45 ou 90 degrés. + Il s'agit d'un mouvement "rapide" si vous devez vous déplacer rapidement pour éviter le dash suivant d'Ifrit. + Il s'agit d'un mouvement "lent" si vous avez plus de temps pour le faire.`, cn: `这是从第一次火神冲附近开始的火神冲主要移动。 人群和奶妈都将移动 45 度或 90 度。 "快" 可以让你快速移动,躲避第二次火神冲。 @@ -1026,24 +1055,28 @@ const triggerSet: TriggerSet = { awokenDash1: { en: '${rotation} 45° to ${dir} (fast)', de: '${rotation} 45° nach ${dir} (schnell)', + fr: '${rotation} 45° vers ${dir} (rapide)', cn: '${rotation} 45° 到 ${dir} (快)', ko: '${rotation} 45° ${dir}까지 (빠름)', }, awokenDash2: { en: '${rotation} 90° to ${dir} (fast)', de: '${rotation} 90° nach ${dir} (schnell)', + fr: '${rotation} 90° vers ${dir} (rapide)', cn: '${rotation} 90° 到 ${dir} (快)', ko: '${rotation} 90° ${dir}까지 (빠름)', }, awokenDash3: { en: '${rotation} 45° to ${dir} (slow)', de: '${rotation} 45° nach ${dir} (langsam)', + fr: '${rotation} 45° vers ${dir} (lent)', cn: '${rotation} 45° 到 ${dir} (慢)', ko: '${rotation} 45° ${dir}까지 (느림)', }, awokenDash4: { en: '${rotation} 90° to ${dir} (slow)', de: '${rotation} 90° nach ${dir} (langsam)', + fr: '${rotation} 90° vers ${dir} (lent)', cn: '${rotation} 90° 到 ${dir} (慢)', ko: '${rotation} 90° ${dir}까지 (느림)', }, @@ -1253,6 +1286,7 @@ const triggerSet: TriggerSet = { text: { en: 'Everyone to ${num} (${player} died)', de: 'Alle zur ${num} (${player} ist gestorben)', + fr: 'Tout le monde sur ${num} (${player} est mort)', cn: '所有人到 ${num} (${player}死亡)', ko: '전부다 ${num} 쪽으로 (${player} 죽음)', }, @@ -1280,6 +1314,7 @@ const triggerSet: TriggerSet = { text: { en: 'Caster LB NOW!', de: 'Magier LB JETZT!', + fr: 'LB MAINTENANT !', cn: '法系LB!', ko: '캐스터 리밋!', }, @@ -1297,6 +1332,7 @@ const triggerSet: TriggerSet = { text: { en: 'Healer LB NOW!', de: 'Heiler LB JETZT!', + fr: 'Healer LB MAINTENANT !', cn: '奶妈LB!', ko: '힐러 리밋!', }, @@ -1313,6 +1349,7 @@ const triggerSet: TriggerSet = { text: { en: 'Melee LB NOW!', de: 'Nahkämpfer LB JETZT!', + fr: 'LB melee MAINTENANT !', cn: '近战LB!', ko: '근딜 리밋!', }, @@ -1328,7 +1365,7 @@ const triggerSet: TriggerSet = { text: { en: 'Tank LB NOW', de: 'JETZT Tank LB', - fr: 'Transcendance Tank maintenant !', + fr: 'LB Tank MAINTENANT !', ja: '今タンクLB', cn: '坦克LB', ko: '탱리밋', @@ -1342,6 +1379,7 @@ const triggerSet: TriggerSet = { en: '"early safe" here means that you can move before the first Ifrit dash.', de: '"früh sicher" bedeutet hier, dass man such auch schon for dem ersten Ifrit Dash bewegen kann.', + fr: '"sûr avant" veut dire que vous pouvez bouger avant le dash d\'Ifrit.', cn: '这里的 "提前安全" 指你可以在伊弗利特第一次冲锋前移动。', ko: '여기서 "안전"이란 첫 이프리트 돌진 전에 미리 가 있어도 된다는 의미입니다.', }, @@ -1469,12 +1507,14 @@ const triggerSet: TriggerSet = { early: { en: '${dir} => ${rotation} (early safe)', de: '${dir} => ${rotation} (früh sicher)', + fr: '${dir} => ${rotation} (sûr avant)', cn: '${dir} => ${rotation} (提前安全)', ko: '${dir} => ${rotation} (안전)', }, normal: { en: '${dir} => ${rotation}', de: '${dir} => ${rotation}', + fr: '${dir} => ${rotation}', cn: '${dir} => ${rotation}', ko: '${dir} => ${rotation}', },