From 3cb20b6f6578af7c06cf33643c4dbc197cb05c86 Mon Sep 17 00:00:00 2001 From: Jon Kazama Date: Tue, 18 Aug 2026 22:43:09 +0200 Subject: [PATCH] feat(chat): insert map-flag and item-link tokens again, and finish the resx parity The two menu items went out with the v1.5.6 chat window in cf4705e. Their strings stayed, in the base file only, so the feature was gone and its labels were untranslated in all 24 other languages. They live in the chat context menu now, next to hide-chat, which is where the rest of that window's items ended up. The game expands and at send time, so appending the literal token is the whole implementation; each entry is disabled while its precondition is missing so a token cannot be sent only to expand into nothing at the other end. ChatLog_ScrollToBottom_Tooltip is the one that stings: it has had a caller since v1.9.0 and existed in the base file alone, so every player outside English read that tooltip in English. All three are translated now, and with them the resource files are at full parity for the first time -- 25 files, every key in every one. --- HellionChat/PayloadHandler.cs | 38 +++++++++++++++++++ HellionChat/Resources/HellionStrings.ca.resx | 9 +++++ HellionChat/Resources/HellionStrings.cs.resx | 9 +++++ HellionChat/Resources/HellionStrings.da.resx | 9 +++++ HellionChat/Resources/HellionStrings.de.resx | 9 +++++ HellionChat/Resources/HellionStrings.el.resx | 9 +++++ HellionChat/Resources/HellionStrings.es.resx | 9 +++++ HellionChat/Resources/HellionStrings.fi.resx | 9 +++++ HellionChat/Resources/HellionStrings.fr.resx | 9 +++++ HellionChat/Resources/HellionStrings.hu.resx | 9 +++++ HellionChat/Resources/HellionStrings.it.resx | 9 +++++ HellionChat/Resources/HellionStrings.ja.resx | 9 +++++ HellionChat/Resources/HellionStrings.ko.resx | 9 +++++ HellionChat/Resources/HellionStrings.nb.resx | 9 +++++ HellionChat/Resources/HellionStrings.nl.resx | 9 +++++ HellionChat/Resources/HellionStrings.pl.resx | 9 +++++ .../Resources/HellionStrings.pt-BR.resx | 9 +++++ .../Resources/HellionStrings.pt-PT.resx | 9 +++++ HellionChat/Resources/HellionStrings.ro.resx | 9 +++++ HellionChat/Resources/HellionStrings.ru.resx | 9 +++++ HellionChat/Resources/HellionStrings.sv.resx | 9 +++++ HellionChat/Resources/HellionStrings.tr.resx | 9 +++++ HellionChat/Resources/HellionStrings.uk.resx | 9 +++++ .../Resources/HellionStrings.zh-Hans.resx | 9 +++++ .../Resources/HellionStrings.zh-Hant.resx | 9 +++++ 25 files changed, 254 insertions(+) diff --git a/HellionChat/PayloadHandler.cs b/HellionChat/PayloadHandler.cs index 82143d8..c8d9b2a 100644 --- a/HellionChat/PayloadHandler.cs +++ b/HellionChat/PayloadHandler.cs @@ -15,6 +15,7 @@ using Dalamud.Interface.Utility; using Dalamud.Interface.Utility.Raii; using Dalamud.Utility; using FFXIVClientStructs.FFXIV.Client.UI; +using FFXIVClientStructs.FFXIV.Client.UI.Agent; using FFXIVClientStructs.FFXIV.Component.GUI; using HellionChat.Code; using HellionChat.Resources; @@ -191,6 +192,8 @@ internal sealed class PayloadHandler if (ImGui.Selectable(Language.Context_HideChat)) Plugin.Config.HideChat = true; + DrawTokenInserts(); + if (chunk.Message is { } message) { if (ImGui.Selectable(Language.Context_Copy)) @@ -936,4 +939,39 @@ internal sealed class PayloadHandler _popup = (chunk, payload); ImGui.OpenPopup(PopupId); } + + // The game expands and at send time, so inserting the literal + // token is enough. Both entries were in the v1.5.6 chat window and went out + // with it; the strings survived, untranslated in 24 files until now. + // + // Disabled when the precondition is missing, so the token cannot be sent + // only to expand into nothing on the other side. + private void DrawTokenInserts() + { + bool flagSet; + bool itemSet; + unsafe + { + flagSet = AgentMap.Instance()->FlagMarkerCount > 0; + itemSet = AgentChatLog.Instance()->LinkedItem.ItemId != 0; + } + + using (ImRaii.Disabled(!flagSet)) + { + if (ImGui.Selectable(HellionStrings.ChatLog_Insert_MapFlag)) + AppendToInput(""); + } + + using (ImRaii.Disabled(!itemSet)) + { + if (ImGui.Selectable(HellionStrings.ChatLog_Insert_ItemLink)) + AppendToInput(""); + } + } + + private void AppendToInput(string token) + { + var current = _inputBar.PendingMessage; + _inputBar.SetPendingMessage(current + token); + } } diff --git a/HellionChat/Resources/HellionStrings.ca.resx b/HellionChat/Resources/HellionStrings.ca.resx index 63004cc..c238ed5 100644 --- a/HellionChat/Resources/HellionStrings.ca.resx +++ b/HellionChat/Resources/HellionStrings.ca.resx @@ -1205,4 +1205,13 @@ El joc només informa d'un xiuxiueig fallit al registre. Això mostra una notificació, perquè un missatge a algú desconnectat o d'un altre món no passi desapercebut. + + Vés al missatge més recent + + + Insereix la marca del mapa <flag> + + + Insereix l'objecte enllaçat <item> + \ No newline at end of file diff --git a/HellionChat/Resources/HellionStrings.cs.resx b/HellionChat/Resources/HellionStrings.cs.resx index 9741bc4..dca569f 100644 --- a/HellionChat/Resources/HellionStrings.cs.resx +++ b/HellionChat/Resources/HellionStrings.cs.resx @@ -1204,4 +1204,13 @@ Hra hlásí neúspěšné šeptání jen v logu. Toto místo toho zobrazí upozornění, aby zpráva někomu offline nebo na jiném světě nezůstala bez povšimnutí. + + Přejít na nejnovější zprávu + + + Vložit značku mapy <flag> + + + Vložit odkázaný předmět <item> + \ No newline at end of file diff --git a/HellionChat/Resources/HellionStrings.da.resx b/HellionChat/Resources/HellionStrings.da.resx index 976d7e9..af39218 100644 --- a/HellionChat/Resources/HellionStrings.da.resx +++ b/HellionChat/Resources/HellionStrings.da.resx @@ -1204,4 +1204,13 @@ Spillet melder kun en mislykket tell i loggen. Dette giver en notifikation i stedet, så en besked til nogen offline eller på en anden verden ikke overses. + + Hop til den seneste besked + + + Indsæt kortmarkering <flag> + + + Indsæt linket genstand <item> + \ No newline at end of file diff --git a/HellionChat/Resources/HellionStrings.de.resx b/HellionChat/Resources/HellionStrings.de.resx index e075eee..d86d3fa 100644 --- a/HellionChat/Resources/HellionStrings.de.resx +++ b/HellionChat/Resources/HellionStrings.de.resx @@ -1199,4 +1199,13 @@ Das Spiel meldet ein fehlgeschlagenes Flüstern nur im Protokoll. Das hier zeigt stattdessen eine Benachrichtigung, damit eine Nachricht an jemanden offline oder auf einer anderen Welt nicht untergeht. + + Zur neuesten Nachricht springen + + + Kartenmarkierung einfügen <flag> + + + Verlinkten Gegenstand einfügen <item> + \ No newline at end of file diff --git a/HellionChat/Resources/HellionStrings.el.resx b/HellionChat/Resources/HellionStrings.el.resx index ff8a3db..d0d44c0 100644 --- a/HellionChat/Resources/HellionStrings.el.resx +++ b/HellionChat/Resources/HellionStrings.el.resx @@ -1204,4 +1204,13 @@ Το παιχνίδι αναφέρει ένα αποτυχημένο tell μόνο στο αρχείο καταγραφής. Αυτό εμφανίζει ειδοποίηση, ώστε ένα μήνυμα σε κάποιον εκτός σύνδεσης ή σε άλλον κόσμο να μην περάσει απαρατήρητο. + + Μετάβαση στο πιο πρόσφατο μήνυμα + + + Εισαγωγή σημαίας χάρτη <flag> + + + Εισαγωγή συνδεδεμένου αντικειμένου <item> + \ No newline at end of file diff --git a/HellionChat/Resources/HellionStrings.es.resx b/HellionChat/Resources/HellionStrings.es.resx index 2fe74f7..b550565 100644 --- a/HellionChat/Resources/HellionStrings.es.resx +++ b/HellionChat/Resources/HellionStrings.es.resx @@ -1205,4 +1205,13 @@ El juego solo informa de un susurro fallido en el registro. Esto muestra una notificación, para que un mensaje a alguien desconectado o de otro mundo no pase desapercibido. + + Ir al mensaje más reciente + + + Insertar marca del mapa <flag> + + + Insertar objeto enlazado <item> + \ No newline at end of file diff --git a/HellionChat/Resources/HellionStrings.fi.resx b/HellionChat/Resources/HellionStrings.fi.resx index e5904d0..4527a49 100644 --- a/HellionChat/Resources/HellionStrings.fi.resx +++ b/HellionChat/Resources/HellionStrings.fi.resx @@ -1204,4 +1204,13 @@ Peli ilmoittaa epäonnistuneesta kuiskauksesta vain lokissa. Tämä näyttää sen sijaan ilmoituksen, jottei viesti offline-tilassa tai toisessa maailmassa olevalle jää huomaamatta. + + Siirry uusimpaan viestiin + + + Lisää karttamerkki <flag> + + + Lisää linkitetty esine <item> + \ No newline at end of file diff --git a/HellionChat/Resources/HellionStrings.fr.resx b/HellionChat/Resources/HellionStrings.fr.resx index 7790d0b..3385228 100644 --- a/HellionChat/Resources/HellionStrings.fr.resx +++ b/HellionChat/Resources/HellionStrings.fr.resx @@ -1205,4 +1205,13 @@ Le jeu ne signale un message privé échoué que dans le journal. Ceci affiche une notification à la place, pour qu'un message à quelqu'un hors ligne ou sur un autre monde ne passe pas inaperçu. + + Aller au message le plus récent + + + Insérer le marqueur de carte <flag> + + + Insérer l'objet lié <item> + \ No newline at end of file diff --git a/HellionChat/Resources/HellionStrings.hu.resx b/HellionChat/Resources/HellionStrings.hu.resx index f27d9aa..89231d5 100644 --- a/HellionChat/Resources/HellionStrings.hu.resx +++ b/HellionChat/Resources/HellionStrings.hu.resx @@ -1204,4 +1204,13 @@ A játék csak a naplóban jelzi a sikertelen suttogást. Ez helyette értesítést jelenít meg, hogy egy offline vagy másik világon lévő játékosnak küldött üzenet ne maradjon észrevétlen. + + Ugrás a legutóbbi üzenetre + + + Térképjelölő beszúrása <flag> + + + Hivatkozott tárgy beszúrása <item> + \ No newline at end of file diff --git a/HellionChat/Resources/HellionStrings.it.resx b/HellionChat/Resources/HellionStrings.it.resx index 31ebf8b..e21a16f 100644 --- a/HellionChat/Resources/HellionStrings.it.resx +++ b/HellionChat/Resources/HellionStrings.it.resx @@ -1205,4 +1205,13 @@ Il gioco segnala un sussurro fallito solo nel registro. Questo mostra invece una notifica, così un messaggio a qualcuno offline o su un altro mondo non passa inosservato. + + Vai al messaggio più recente + + + Inserisci il segnalino mappa <flag> + + + Inserisci l'oggetto collegato <item> + \ No newline at end of file diff --git a/HellionChat/Resources/HellionStrings.ja.resx b/HellionChat/Resources/HellionStrings.ja.resx index a6648e5..99fa915 100644 --- a/HellionChat/Resources/HellionStrings.ja.resx +++ b/HellionChat/Resources/HellionStrings.ja.resx @@ -1205,4 +1205,13 @@ ゲームはテルの失敗をログにしか表示しません。この設定では代わりに通知を出すので、オフラインや別ワールドの相手へのメッセージを見落としません。 + + 最新のメッセージへ移動 + + + マップフラグを挿入 <flag> + + + リンクしたアイテムを挿入 <item> + \ No newline at end of file diff --git a/HellionChat/Resources/HellionStrings.ko.resx b/HellionChat/Resources/HellionStrings.ko.resx index e362943..645788a 100644 --- a/HellionChat/Resources/HellionStrings.ko.resx +++ b/HellionChat/Resources/HellionStrings.ko.resx @@ -1205,4 +1205,13 @@ 게임은 귓속말 실패를 로그에만 표시합니다. 이 설정은 대신 알림을 띄워, 오프라인이거나 다른 월드에 있는 상대에게 보낸 메시지를 놓치지 않게 합니다. + + 최신 메시지로 이동 + + + 지도 표시 삽입 <flag> + + + 연결된 아이템 삽입 <item> + \ No newline at end of file diff --git a/HellionChat/Resources/HellionStrings.nb.resx b/HellionChat/Resources/HellionStrings.nb.resx index 777a644..c9e9ee5 100644 --- a/HellionChat/Resources/HellionStrings.nb.resx +++ b/HellionChat/Resources/HellionStrings.nb.resx @@ -1204,4 +1204,13 @@ Spillet melder en mislykket tell bare i loggen. Dette gir et varsel i stedet, så en melding til noen offline eller på en annen verden ikke blir oversett. + + Hopp til den nyeste meldingen + + + Sett inn kartmarkør <flag> + + + Sett inn lenket gjenstand <item> + \ No newline at end of file diff --git a/HellionChat/Resources/HellionStrings.nl.resx b/HellionChat/Resources/HellionStrings.nl.resx index 974a2d8..215be2f 100644 --- a/HellionChat/Resources/HellionStrings.nl.resx +++ b/HellionChat/Resources/HellionStrings.nl.resx @@ -1205,4 +1205,13 @@ Het spel meldt een mislukte tell alleen in het log. Dit toont in plaats daarvan een melding, zodat een bericht aan iemand offline of op een andere wereld niet onopgemerkt blijft. + + Ga naar het nieuwste bericht + + + Kaartmarkering invoegen <flag> + + + Gekoppeld voorwerp invoegen <item> + \ No newline at end of file diff --git a/HellionChat/Resources/HellionStrings.pl.resx b/HellionChat/Resources/HellionStrings.pl.resx index c6d2962..7d02ae7 100644 --- a/HellionChat/Resources/HellionStrings.pl.resx +++ b/HellionChat/Resources/HellionStrings.pl.resx @@ -1204,4 +1204,13 @@ Gra zgłasza nieudany szept tylko w dzienniku. To zamiast tego wyświetla powiadomienie, żeby wiadomość do kogoś offline lub z innego świata nie umknęła. + + Przejdź do najnowszej wiadomości + + + Wstaw znacznik mapy <flag> + + + Wstaw powiązany przedmiot <item> + \ No newline at end of file diff --git a/HellionChat/Resources/HellionStrings.pt-BR.resx b/HellionChat/Resources/HellionStrings.pt-BR.resx index 3e43666..d97fa64 100644 --- a/HellionChat/Resources/HellionStrings.pt-BR.resx +++ b/HellionChat/Resources/HellionStrings.pt-BR.resx @@ -1205,4 +1205,13 @@ O jogo relata um sussurro que falhou apenas no registro. Isto mostra uma notificação, para que uma mensagem a alguém offline ou de outro mundo não passe despercebida. + + Ir para a mensagem mais recente + + + Inserir marcação do mapa <flag> + + + Inserir item vinculado <item> + \ No newline at end of file diff --git a/HellionChat/Resources/HellionStrings.pt-PT.resx b/HellionChat/Resources/HellionStrings.pt-PT.resx index 4e0c160..9e9813b 100644 --- a/HellionChat/Resources/HellionStrings.pt-PT.resx +++ b/HellionChat/Resources/HellionStrings.pt-PT.resx @@ -1204,4 +1204,13 @@ O jogo comunica um sussurro falhado apenas no registo. Isto mostra uma notificação, para que uma mensagem a alguém offline ou de outro mundo não passe despercebida. + + Ir para a mensagem mais recente + + + Inserir marcação do mapa <flag> + + + Inserir item ligado <item> + \ No newline at end of file diff --git a/HellionChat/Resources/HellionStrings.ro.resx b/HellionChat/Resources/HellionStrings.ro.resx index 5c723db..eed5fcb 100644 --- a/HellionChat/Resources/HellionStrings.ro.resx +++ b/HellionChat/Resources/HellionStrings.ro.resx @@ -1205,4 +1205,13 @@ Jocul raportează un mesaj privat eșuat doar în jurnal. Aceasta afișează în schimb o notificare, ca un mesaj către cineva offline sau de pe altă lume să nu treacă neobservat. + + Salt la cel mai recent mesaj + + + Inserează marcajul hărții <flag> + + + Inserează obiectul legat <item> + \ No newline at end of file diff --git a/HellionChat/Resources/HellionStrings.ru.resx b/HellionChat/Resources/HellionStrings.ru.resx index 4bbc887..96e5a9b 100644 --- a/HellionChat/Resources/HellionStrings.ru.resx +++ b/HellionChat/Resources/HellionStrings.ru.resx @@ -1205,4 +1205,13 @@ Игра сообщает о недоставленном шёпоте только в журнале. Здесь вместо этого показывается уведомление, чтобы сообщение офлайн-игроку или игроку с другого мира не осталось незамеченным. + + Перейти к последнему сообщению + + + Вставить метку карты <flag> + + + Вставить связанный предмет <item> + \ No newline at end of file diff --git a/HellionChat/Resources/HellionStrings.sv.resx b/HellionChat/Resources/HellionStrings.sv.resx index 30c72ff..f563572 100644 --- a/HellionChat/Resources/HellionStrings.sv.resx +++ b/HellionChat/Resources/HellionStrings.sv.resx @@ -1205,4 +1205,13 @@ Spelet rapporterar ett misslyckat viskmeddelande bara i loggen. Det här visar en avisering i stället, så att ett meddelande till någon offline eller på en annan värld inte missas. + + Hoppa till det senaste meddelandet + + + Infoga kartmarkering <flag> + + + Infoga länkat föremål <item> + \ No newline at end of file diff --git a/HellionChat/Resources/HellionStrings.tr.resx b/HellionChat/Resources/HellionStrings.tr.resx index 3a3a05a..14c9e78 100644 --- a/HellionChat/Resources/HellionStrings.tr.resx +++ b/HellionChat/Resources/HellionStrings.tr.resx @@ -1204,4 +1204,13 @@ Oyun başarısız fısıltıyı yalnızca günlükte bildirir. Bu ayar bunun yerine bir bildirim gösterir, böylece çevrimdışı ya da başka dünyadaki birine gönderilen ileti gözden kaçmaz. + + En son iletiye git + + + Harita işaretini ekle <flag> + + + Bağlantılı eşyayı ekle <item> + \ No newline at end of file diff --git a/HellionChat/Resources/HellionStrings.uk.resx b/HellionChat/Resources/HellionStrings.uk.resx index e24af8a..2a49c92 100644 --- a/HellionChat/Resources/HellionStrings.uk.resx +++ b/HellionChat/Resources/HellionStrings.uk.resx @@ -1204,4 +1204,13 @@ Гра повідомляє про недоставлений шепіт лише в журналі. Це натомість показує сповіщення, щоб повідомлення офлайн-гравцю або гравцю з іншого світу не залишилося непоміченим. + + Перейти до останнього повідомлення + + + Вставити позначку карти <flag> + + + Вставити пов'язаний предмет <item> + \ No newline at end of file diff --git a/HellionChat/Resources/HellionStrings.zh-Hans.resx b/HellionChat/Resources/HellionStrings.zh-Hans.resx index 668ff4e..0264a9c 100644 --- a/HellionChat/Resources/HellionStrings.zh-Hans.resx +++ b/HellionChat/Resources/HellionStrings.zh-Hans.resx @@ -1205,4 +1205,13 @@ 游戏只在日志里提示密语发送失败。此设置改为弹出通知,让发给离线或异世界玩家的消息不会被忽略。 + + 跳到最新消息 + + + 插入地图标记 <flag> + + + 插入关联物品 <item> + \ No newline at end of file diff --git a/HellionChat/Resources/HellionStrings.zh-Hant.resx b/HellionChat/Resources/HellionStrings.zh-Hant.resx index e0c3fc3..5f84eaf 100644 --- a/HellionChat/Resources/HellionStrings.zh-Hant.resx +++ b/HellionChat/Resources/HellionStrings.zh-Hant.resx @@ -1205,4 +1205,13 @@ 遊戲只在日誌裡提示密語傳送失敗。此設定改為彈出通知,讓發給離線或異世界玩家的訊息不會被忽略。 + + 跳到最新訊息 + + + 插入地圖標記 <flag> + + + 插入關聯物品 <item> + \ No newline at end of file