From cc541ec0eb8bacd45677d824f9abe27c245574a8 Mon Sep 17 00:00:00 2001 From: Alexei Kotov Date: Thu, 21 Aug 2025 05:08:11 +0300 Subject: [PATCH 1/9] Expose alchemy, birthsign and book actions to l10n --- apps/openmw/mwgui/alchemywindow.cpp | 8 ++++---- apps/openmw/mwgui/birth.cpp | 10 +++++----- apps/openmw/mwgui/bookwindow.cpp | 6 +++--- files/data-mw/l10n/Interface/gmst.yaml | 11 ++++++++++- files/data/l10n/Interface/en.yaml | 10 ++++++++++ 5 files changed, 32 insertions(+), 13 deletions(-) diff --git a/apps/openmw/mwgui/alchemywindow.cpp b/apps/openmw/mwgui/alchemywindow.cpp index 66461e6e6a..b342c1717b 100644 --- a/apps/openmw/mwgui/alchemywindow.cpp +++ b/apps/openmw/mwgui/alchemywindow.cpp @@ -94,11 +94,11 @@ namespace MWGui if (Settings::gui().mControllerMenus) { - mControllerButtons.mA = "#{sSelect}"; + mControllerButtons.mA = "#{Interface:Select}"; mControllerButtons.mB = "#{Interface:Cancel}"; - mControllerButtons.mX = "#{sCreate}"; - mControllerButtons.mY = "#{sMagicEffects}"; - mControllerButtons.mR3 = "#{sInfo}"; + mControllerButtons.mX = "#{Interface:Create}"; + mControllerButtons.mY = "#{Interface:MagicEffects}"; + mControllerButtons.mR3 = "#{Interface:Info}"; } center(); diff --git a/apps/openmw/mwgui/birth.cpp b/apps/openmw/mwgui/birth.cpp index 97405e7cc0..0cd71db7e0 100644 --- a/apps/openmw/mwgui/birth.cpp +++ b/apps/openmw/mwgui/birth.cpp @@ -60,9 +60,9 @@ namespace MWGui if (Settings::gui().mControllerMenus) { - mControllerButtons.mLStick = "#{sMouse}"; - mControllerButtons.mA = "#{sSelect}"; - mControllerButtons.mB = "#{sBack}"; + mControllerButtons.mLStick = "#{Interface:Mouse}"; + mControllerButtons.mA = "#{Interface:Select}"; + mControllerButtons.mB = "#{Interface:Back}"; } updateBirths(); @@ -78,13 +78,13 @@ namespace MWGui { okButton->setCaption( MyGUI::UString(MWBase::Environment::get().getWindowManager()->getGameSettingString("sNext", {}))); - mControllerButtons.mX = "#{sNext}"; + mControllerButtons.mX = "#{Interface:Next}"; } else if (Settings::gui().mControllerMenus) { okButton->setCaption( MyGUI::UString(MWBase::Environment::get().getWindowManager()->getGameSettingString("sDone", {}))); - mControllerButtons.mX = "#{sDone}"; + mControllerButtons.mX = "#{Interface:Done}"; } else okButton->setCaption( diff --git a/apps/openmw/mwgui/bookwindow.cpp b/apps/openmw/mwgui/bookwindow.cpp index 056f1abc89..4c80e3181f 100644 --- a/apps/openmw/mwgui/bookwindow.cpp +++ b/apps/openmw/mwgui/bookwindow.cpp @@ -66,8 +66,8 @@ namespace MWGui MyGUI::IntCoord(0, 0, (64 - 7) * scale, mNextPageButton->getSize().height * scale)); } - mControllerButtons.mL1 = "#{sPrev}"; - mControllerButtons.mR1 = "#{sNext}"; + mControllerButtons.mL1 = "#{Interface:Prev}"; + mControllerButtons.mR1 = "#{Interface:Next}"; mControllerButtons.mB = "#{Interface:Close}"; center(); @@ -224,7 +224,7 @@ namespace MWGui ControllerButtons* BookWindow::getControllerButtons() { - mControllerButtons.mA = mTakeButton->getVisible() ? "#{sTake}" : ""; + mControllerButtons.mA = mTakeButton->getVisible() ? "#{Interface:Take}" : {}; return &mControllerButtons; } diff --git a/files/data-mw/l10n/Interface/gmst.yaml b/files/data-mw/l10n/Interface/gmst.yaml index f40a7ee943..2f693078f6 100644 --- a/files/data-mw/l10n/Interface/gmst.yaml +++ b/files/data-mw/l10n/Interface/gmst.yaml @@ -6,4 +6,13 @@ OK: "sOK" Off: "sOff" On: "sOn" Yes: "sYes" - +Select: "sSelect" +Create: "sCreate" +MagicEffects: "sMagicEffects" +Info: "sInfo" +Next: "sNext" +Back: "sBack" +Mouse: "sMouse" +Done: "sDone" +Prev: "sPrev" +Take: "sTake" diff --git a/files/data/l10n/Interface/en.yaml b/files/data/l10n/Interface/en.yaml index 82c1aeba1a..9fe3426ec2 100644 --- a/files/data/l10n/Interface/en.yaml +++ b/files/data/l10n/Interface/en.yaml @@ -23,3 +23,13 @@ OK: "OK" Cancel: "Cancel" Close: "Close" Copy: "Copy" +Select: "Select" +Create: "Create" +MagicEffects: "Magic Effects" +Info: "Info" +Next: "Next" +Back: "Back" +Mouse: "Mouse" +Done: "Done" +Prev: "Prev" +Take: "Take" From 0b99fafd012d7e6f108ea0684fec12448f4f521a Mon Sep 17 00:00:00 2001 From: Alexei Kotov Date: Thu, 21 Aug 2025 05:15:38 +0300 Subject: [PATCH 2/9] Expose class dialog, companion and container actions to l10n --- apps/openmw/mwgui/class.cpp | 32 +++++++++++++------------- apps/openmw/mwgui/companionwindow.cpp | 6 ++--- apps/openmw/mwgui/container.cpp | 10 ++++---- files/data-mw/l10n/Interface/gmst.yaml | 3 +++ files/data/l10n/Interface/en.yaml | 3 +++ 5 files changed, 30 insertions(+), 24 deletions(-) diff --git a/apps/openmw/mwgui/class.cpp b/apps/openmw/mwgui/class.cpp index b60e0e3116..a2dcafd826 100644 --- a/apps/openmw/mwgui/class.cpp +++ b/apps/openmw/mwgui/class.cpp @@ -59,8 +59,8 @@ namespace MWGui { mOkButton->setStateSelected(true); mDisableGamepadCursor = true; - mControllerButtons.mA = "#{sSelect}"; - mControllerButtons.mB = "#{sBack}"; + mControllerButtons.mA = "#{Interface:Select}"; + mControllerButtons.mB = "#{Interface:Back}"; } center(); @@ -149,9 +149,9 @@ namespace MWGui if (Settings::gui().mControllerMenus) { - mControllerButtons.mLStick = "#{sMouse}"; - mControllerButtons.mA = "#{sSelect}"; - mControllerButtons.mB = "#{sBack}"; + mControllerButtons.mLStick = "#{Interface:Mouse}"; + mControllerButtons.mA = "#{Interface:Select}"; + mControllerButtons.mB = "#{Interface:Back}"; } updateClasses(); @@ -167,13 +167,13 @@ namespace MWGui { okButton->setCaption( MyGUI::UString(MWBase::Environment::get().getWindowManager()->getGameSettingString("sNext", {}))); - mControllerButtons.mX = "#{sNext}"; + mControllerButtons.mX = "#{Interface:Next}"; } else if (Settings::gui().mControllerMenus) { okButton->setCaption( MyGUI::UString(MWBase::Environment::get().getWindowManager()->getGameSettingString("sDone", {}))); - mControllerButtons.mX = "#{sDone}"; + mControllerButtons.mX = "#{Interface:Done}"; } else okButton->setCaption( @@ -392,7 +392,7 @@ namespace MWGui center(); mDisableGamepadCursor = Settings::gui().mControllerMenus; - mControllerButtons.mA = "#{sSelect}"; + mControllerButtons.mA = "#{Interface:Select}"; } void InfoBoxDialog::setText(const std::string& str) @@ -584,9 +584,9 @@ namespace MWGui if (Settings::gui().mControllerMenus) { okButton->setStateSelected(true); - mControllerButtons.mLStick = "#{sMouse}"; - mControllerButtons.mA = "#{sSelect}"; - mControllerButtons.mB = "#{sBack}"; + mControllerButtons.mLStick = "#{Interface:Mouse}"; + mControllerButtons.mA = "#{Interface:Select}"; + mControllerButtons.mB = "#{Interface:Back}"; } // Set default skills, attributes @@ -678,13 +678,13 @@ namespace MWGui { okButton->setCaption( MyGUI::UString(MWBase::Environment::get().getWindowManager()->getGameSettingString("sNext", {}))); - mControllerButtons.mX = "#{sNext}"; + mControllerButtons.mX = "#{Interface:Next}"; } else if (Settings::gui().mControllerMenus) { okButton->setCaption( MyGUI::UString(MWBase::Environment::get().getWindowManager()->getGameSettingString("sDone", {}))); - mControllerButtons.mX = "#{sDone}"; + mControllerButtons.mX = "#{Interface:Done}"; } else okButton->setCaption( @@ -882,7 +882,7 @@ namespace MWGui getWidget(cancelButton, "CancelButton"); cancelButton->eventMouseButtonClick += MyGUI::newDelegate(this, &SelectSpecializationDialog::onCancelClicked); - mControllerButtons.mA = "#{sSelect}"; + mControllerButtons.mA = "#{Interface:Select}"; mControllerButtons.mB = "#{Interface:Cancel}"; } @@ -963,7 +963,7 @@ namespace MWGui if (mAttributeButtons.size() > 0) mAttributeButtons[0]->setStateSelected(true); - mControllerButtons.mA = "#{sSelect}"; + mControllerButtons.mA = "#{Interface:Select}"; mControllerButtons.mB = "#{Interface:Cancel}"; } } @@ -1063,7 +1063,7 @@ namespace MWGui if (mSkillButtons.size() > 0) mSkillButtons[0]->setStateSelected(true); - mControllerButtons.mA = "#{sSelect}"; + mControllerButtons.mA = "#{Interface:Select}"; mControllerButtons.mB = "#{Interface:Cancel}"; } } diff --git a/apps/openmw/mwgui/companionwindow.cpp b/apps/openmw/mwgui/companionwindow.cpp index 0972f8e57e..aebfd1f45a 100644 --- a/apps/openmw/mwgui/companionwindow.cpp +++ b/apps/openmw/mwgui/companionwindow.cpp @@ -64,10 +64,10 @@ namespace MWGui setCoord(200, 0, 600, 300); - mControllerButtons.mA = "#{sTake}"; + mControllerButtons.mA = "#{Interface:Take}"; mControllerButtons.mB = "#{Interface:Close}"; - mControllerButtons.mR3 = "#{sInfo}"; - mControllerButtons.mL2 = "#{sInventory}"; + mControllerButtons.mR3 = "#{Interface:Info}"; + mControllerButtons.mL2 = "#{Interface:Inventory}"; } void CompanionWindow::onItemSelected(int index) diff --git a/apps/openmw/mwgui/container.cpp b/apps/openmw/mwgui/container.cpp index 126b6ea1d3..fe811b47a9 100644 --- a/apps/openmw/mwgui/container.cpp +++ b/apps/openmw/mwgui/container.cpp @@ -59,11 +59,11 @@ namespace MWGui setCoord(200, 0, 600, 300); - mControllerButtons.mA = "#{sTake}"; + mControllerButtons.mA = "#{Interface:Take}"; mControllerButtons.mB = "#{Interface:Close}"; - mControllerButtons.mX = "#{sTakeAll}"; - mControllerButtons.mR3 = "#{sInfo}"; - mControllerButtons.mL2 = "#{sInventory}"; + mControllerButtons.mX = "#{Interface:TakeAll}"; + mControllerButtons.mR3 = "#{Interface:Info}"; + mControllerButtons.mL2 = "#{Interface:Inventory}"; } void ContainerWindow::onItemSelected(int index) @@ -355,7 +355,7 @@ namespace MWGui ControllerButtons* ContainerWindow::getControllerButtons() { - mControllerButtons.mR1 = mDisposeCorpseButton->getVisible() ? "#{sDisposeofCorpse}" : ""; + mControllerButtons.mR1 = mDisposeCorpseButton->getVisible() ? "#{Interface:DisposeOfCorpse}" : {}; return &mControllerButtons; } diff --git a/files/data-mw/l10n/Interface/gmst.yaml b/files/data-mw/l10n/Interface/gmst.yaml index 2f693078f6..e4bcc60bcd 100644 --- a/files/data-mw/l10n/Interface/gmst.yaml +++ b/files/data-mw/l10n/Interface/gmst.yaml @@ -16,3 +16,6 @@ Mouse: "sMouse" Done: "sDone" Prev: "sPrev" Take: "sTake" +TakeAll: "sTakeAll" +Inventory: "sInventory" +DisposeOfCorpse: "sDisposeofCorpse" diff --git a/files/data/l10n/Interface/en.yaml b/files/data/l10n/Interface/en.yaml index 9fe3426ec2..b7ba10202e 100644 --- a/files/data/l10n/Interface/en.yaml +++ b/files/data/l10n/Interface/en.yaml @@ -33,3 +33,6 @@ Mouse: "Mouse" Done: "Done" Prev: "Prev" Take: "Take" +TakeAll: "Take All" +Inventory: "Inventory" +DisposeOfCorpse: "Dispose of Corpse" From d3f2607d343b7b690615b2bb8b08f8d983d4d848 Mon Sep 17 00:00:00 2001 From: Alexei Kotov Date: Thu, 21 Aug 2025 05:22:41 +0300 Subject: [PATCH 3/9] Expose dialogue and enchanting actions to l10n --- apps/openmw/mwgui/dialogue.cpp | 8 ++++---- apps/openmw/mwgui/enchantingdialog.cpp | 10 +++++----- files/data-mw/l10n/Interface/gmst.yaml | 6 ++++++ files/data/l10n/Interface/en.yaml | 6 ++++++ 4 files changed, 21 insertions(+), 9 deletions(-) diff --git a/apps/openmw/mwgui/dialogue.cpp b/apps/openmw/mwgui/dialogue.cpp index 48f7d18ff8..9a82435327 100644 --- a/apps/openmw/mwgui/dialogue.cpp +++ b/apps/openmw/mwgui/dialogue.cpp @@ -90,7 +90,7 @@ namespace MWGui mBribe1000Button->eventMouseButtonClick += MyGUI::newDelegate(this, &PersuasionDialog::onPersuade); mDisableGamepadCursor = Settings::gui().mControllerMenus; - mControllerButtons.mA = "#{sSelect}"; + mControllerButtons.mA = "#{Interface:Select}"; mControllerButtons.mB = "#{Interface:Cancel}"; } @@ -387,9 +387,9 @@ namespace MWGui += MyGUI::newDelegate(this, &DialogueWindow::onWindowResize); mControllerScrollWidget = mHistory->getParent(); - mControllerButtons.mA = "#{sAsk}"; - mControllerButtons.mB = "#{sGoodbye}"; - mControllerButtons.mRStick = "#{sScrollup}"; + mControllerButtons.mA = "#{Interface:Ask}"; + mControllerButtons.mB = "#{Interface:Goodbye}"; + mControllerButtons.mRStick = "#{Interface:ScrollUp}"; } void DialogueWindow::onTradeComplete() diff --git a/apps/openmw/mwgui/enchantingdialog.cpp b/apps/openmw/mwgui/enchantingdialog.cpp index d6a42f8ea0..83eab77211 100644 --- a/apps/openmw/mwgui/enchantingdialog.cpp +++ b/apps/openmw/mwgui/enchantingdialog.cpp @@ -60,11 +60,11 @@ namespace MWGui mTypeButton->eventMouseButtonClick += MyGUI::newDelegate(this, &EnchantingDialog::onTypeButtonClicked); mName->eventEditSelectAccept += MyGUI::newDelegate(this, &EnchantingDialog::onAccept); - mControllerButtons.mA = "#{sSelect}"; + mControllerButtons.mA = "#{Interface:Select}"; mControllerButtons.mB = "#{Interface:Cancel}"; mControllerButtons.mY = "#{OMWEngine:EnchantType}"; - mControllerButtons.mL1 = "#{sItem}"; - mControllerButtons.mR1 = "#{sSoulGem}"; + mControllerButtons.mL1 = "#{Interface:Item}"; + mControllerButtons.mR1 = "#{Interface:SoulGem}"; } void EnchantingDialog::onOpen() @@ -158,7 +158,7 @@ namespace MWGui mEnchanting.setSelfEnchanting(false); mEnchanting.setEnchanter(ptr); mBuyButton->setCaptionWithReplacing("#{sBuy}"); - mControllerButtons.mX = "#{sBuy}"; + mControllerButtons.mX = "#{Interface:Buy}"; mChanceLayout->setVisible(false); mPtr = ptr; setSoulGem(MWWorld::Ptr()); @@ -170,7 +170,7 @@ namespace MWGui mEnchanting.setSelfEnchanting(true); mEnchanting.setEnchanter(MWMechanics::getPlayer()); mBuyButton->setCaptionWithReplacing("#{sCreate}"); - mControllerButtons.mX = "#{sCreate}"; + mControllerButtons.mX = "#{Interface:Create}"; mChanceLayout->setVisible(Settings::game().mShowEnchantChance); mPtr = MWMechanics::getPlayer(); setSoulGem(ptr); diff --git a/files/data-mw/l10n/Interface/gmst.yaml b/files/data-mw/l10n/Interface/gmst.yaml index e4bcc60bcd..4ed1f0ab0a 100644 --- a/files/data-mw/l10n/Interface/gmst.yaml +++ b/files/data-mw/l10n/Interface/gmst.yaml @@ -19,3 +19,9 @@ Take: "sTake" TakeAll: "sTakeAll" Inventory: "sInventory" DisposeOfCorpse: "sDisposeofCorpse" +Ask: "sAsk" +Goodbye: "sGoodbye" +ScrollUp: "sScrollup" +Item: "sItem" +SoulGem: "sSoulGem" +Buy: "sBuy" diff --git a/files/data/l10n/Interface/en.yaml b/files/data/l10n/Interface/en.yaml index b7ba10202e..8c2574df6d 100644 --- a/files/data/l10n/Interface/en.yaml +++ b/files/data/l10n/Interface/en.yaml @@ -36,3 +36,9 @@ Take: "Take" TakeAll: "Take All" Inventory: "Inventory" DisposeOfCorpse: "Dispose of Corpse" +Ask: "Ask" +Goodbye: "Goodbye" +ScrollUp: "Scroll Up" +Item: "Item" +SoulGem: "Soul Gem" +Buy: "Buy" From 49d769cb7ebfe9dfd876ec1564487a91871c2853 Mon Sep 17 00:00:00 2001 From: Alexei Kotov Date: Wed, 27 Aug 2025 03:33:41 +0300 Subject: [PATCH 4/9] Update English/French/Russian Interface translations Rename Soul line to be more generic and appropriate to the contents --- apps/openmw/mwgui/enchantingdialog.cpp | 2 +- files/data-mw/l10n/Interface/gmst.yaml | 36 +++++++++---------- files/data/l10n/Interface/en.yaml | 50 +++++++++++++------------- files/data/l10n/Interface/fr.yaml | 35 +++++++++++++----- files/data/l10n/Interface/ru.yaml | 23 ++++++++++-- 5 files changed, 92 insertions(+), 54 deletions(-) diff --git a/apps/openmw/mwgui/enchantingdialog.cpp b/apps/openmw/mwgui/enchantingdialog.cpp index 83eab77211..06842c5f67 100644 --- a/apps/openmw/mwgui/enchantingdialog.cpp +++ b/apps/openmw/mwgui/enchantingdialog.cpp @@ -64,7 +64,7 @@ namespace MWGui mControllerButtons.mB = "#{Interface:Cancel}"; mControllerButtons.mY = "#{OMWEngine:EnchantType}"; mControllerButtons.mL1 = "#{Interface:Item}"; - mControllerButtons.mR1 = "#{Interface:SoulGem}"; + mControllerButtons.mR1 = "#{Interface:Soul}"; } void EnchantingDialog::onOpen() diff --git a/files/data-mw/l10n/Interface/gmst.yaml b/files/data-mw/l10n/Interface/gmst.yaml index 4ed1f0ab0a..cef128fdb6 100644 --- a/files/data-mw/l10n/Interface/gmst.yaml +++ b/files/data-mw/l10n/Interface/gmst.yaml @@ -1,27 +1,27 @@ +Ask: "sAsk" +Back: "sBack" +Buy: "sBuy" Cancel: "sCancel" Close: "sClose" +Create: "sCreate" +DisposeOfCorpse: "sDisposeofCorpse" +Done: "sDone" +Goodbye: "sGoodbye" +Info: "sInfo" +Inventory: "sInventory" +Item: "sItem" +MagicEffects: "sMagicEffects" +# NB: sMouse exists but it is not localized in the Russian game and should not be used to translate Mouse +Next: "sNext" No: "sNo" None: "sNone" -OK: "sOK" Off: "sOff" +OK: "sOK" On: "sOn" -Yes: "sYes" -Select: "sSelect" -Create: "sCreate" -MagicEffects: "sMagicEffects" -Info: "sInfo" -Next: "sNext" -Back: "sBack" -Mouse: "sMouse" -Done: "sDone" Prev: "sPrev" +ScrollUp: "sScrollup" +Select: "sSelect" +Soul: "sSoulGem" Take: "sTake" TakeAll: "sTakeAll" -Inventory: "sInventory" -DisposeOfCorpse: "sDisposeofCorpse" -Ask: "sAsk" -Goodbye: "sGoodbye" -ScrollUp: "sScrollup" -Item: "sItem" -SoulGem: "sSoulGem" -Buy: "sBuy" +Yes: "sYes" diff --git a/files/data/l10n/Interface/en.yaml b/files/data/l10n/Interface/en.yaml index 8c2574df6d..0a97542c35 100644 --- a/files/data/l10n/Interface/en.yaml +++ b/files/data/l10n/Interface/en.yaml @@ -1,3 +1,12 @@ +Ask: "Ask" +Back: "Back" +Buy: "Buy" +Cancel: "Cancel" +Close: "Close" +Copy: "Copy" +Create: "Create" +DisposeOfCorpse: "Dispose of Corpse" +Done: "Done" DurationDay: "{days} d " DurationHour: "{hours} h " DurationMinute: "{minutes} min " @@ -12,33 +21,24 @@ DurationYear: |- one{{years} yr } other{{years} yrs } } -No: "No" -NotAvailableShort: "N/A" -Reset: "Reset" -Yes: "Yes" -On: "On" -Off: "Off" -None: "None" -OK: "OK" -Cancel: "Cancel" -Close: "Close" -Copy: "Copy" -Select: "Select" -Create: "Create" -MagicEffects: "Magic Effects" +Goodbye: "Goodbye" Info: "Info" -Next: "Next" -Back: "Back" +Inventory: "Inventory" +Item: "Item" +MagicEffects: "Magic Effects" Mouse: "Mouse" -Done: "Done" +Next: "Next" +No: "No" +None: "None" +NotAvailableShort: "N/A" +Off: "Off" +OK: "OK" +On: "On" Prev: "Prev" +Reset: "Reset" +ScrollUp: "Scroll Up" +Select: "Select" +Soul: "Soul" Take: "Take" TakeAll: "Take All" -Inventory: "Inventory" -DisposeOfCorpse: "Dispose of Corpse" -Ask: "Ask" -Goodbye: "Goodbye" -ScrollUp: "Scroll Up" -Item: "Item" -SoulGem: "Soul Gem" -Buy: "Buy" +Yes: "Yes" diff --git a/files/data/l10n/Interface/fr.yaml b/files/data/l10n/Interface/fr.yaml index 0a078a1676..df5d950e5d 100644 --- a/files/data/l10n/Interface/fr.yaml +++ b/files/data/l10n/Interface/fr.yaml @@ -1,3 +1,12 @@ +Ask: "Demander" +Back: "En arrière" +Buy: "Acheter" +Cancel: "Annuler" +Close: "Fermer" +Copy: "Copier" +Create: "Créer" +DisposeOfCorpse: "Supprimer cadavre" +Done: "Fait" DurationDay: |- {days, plural, one{{days} jour } @@ -12,14 +21,24 @@ DurationYear: |- one{{years} an } other{{years} ans } } +Goodbye: "Au revoir" +Info: "Info" +Inventory: "Inventaire" +Item: "Objet" +MagicEffects: "Effets magiques" +Mouse: "Souris" +Next: "Suivant" No: "Non" -NotAvailableShort: "N/A" -Reset: "Réinitialiser" -Yes: "Oui" -On: "Actif" -Off: "Inactif" None: "Aucun" +NotAvailableShort: "N/A" +Off: "Inactif" OK: "Valider" -Cancel: "Annuler" -Close: "Fermer" -Copy: "Copier" +On: "Actif" +Prev: "Précédent" +Reset: "Réinitialiser" +ScrollUp: "Défilement haut" +Select: "Sélectionner" +Soul: "Ame" +Take: "Prendre" +TakeAll: "Tout prendre" +Yes: "Oui" diff --git a/files/data/l10n/Interface/ru.yaml b/files/data/l10n/Interface/ru.yaml index 44b38a77b8..03d7ba53b1 100644 --- a/files/data/l10n/Interface/ru.yaml +++ b/files/data/l10n/Interface/ru.yaml @@ -1,6 +1,12 @@ +Ask: "Спросить" +Back: "Назад" +Buy: "Купить" Cancel: "Отмена" Close: "Закрыть" Copy: "Скопировать" +Create: "Создать" +DisposeOfCorpse: "Убрать тело" +Done: "Готово" DurationDay: "{days} д " DurationHour: "{hours} ч " DurationMinute: "{minutes} мин " @@ -12,11 +18,24 @@ DurationYear: |- few{{years} г } other{{years} л } } +Goodbye: "Прощание" +Info: "Инфо" +Inventory: "Инвентарь" +Item: "Предмет" +MagicEffects: "Маг. эффекты" +Mouse: "Мышь" +Next: "След" No: "Нет" -NotAvailableShort: "Н/Д" None: "Нет" -OK: "OK" +NotAvailableShort: "Н/Д" Off: "Выкл" +OK: "OK" On: "Вкл" +Prev: "Пред" Reset: "Сбросить" +ScrollUp: "Прокрутить вверх" +Select: "Выбрать" +Soul: "Душа" +Take: "Взять" +TakeAll: "Взять все" Yes: "Да" From 12b2887e58f244fd7f54838f0f1147f147d22a22 Mon Sep 17 00:00:00 2001 From: Alexei Kotov Date: Wed, 27 Aug 2025 04:22:17 +0300 Subject: [PATCH 5/9] Fix build --- apps/openmw/mwgui/bookwindow.cpp | 5 ++++- apps/openmw/mwgui/container.cpp | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/apps/openmw/mwgui/bookwindow.cpp b/apps/openmw/mwgui/bookwindow.cpp index 4c80e3181f..b4e9f257f8 100644 --- a/apps/openmw/mwgui/bookwindow.cpp +++ b/apps/openmw/mwgui/bookwindow.cpp @@ -224,7 +224,10 @@ namespace MWGui ControllerButtons* BookWindow::getControllerButtons() { - mControllerButtons.mA = mTakeButton->getVisible() ? "#{Interface:Take}" : {}; + if (mTakeButton->getVisible()) + mControllerButtons.mA = "#{Interface:Take}"; + else + mControllerButtons.mA.clear(); return &mControllerButtons; } diff --git a/apps/openmw/mwgui/container.cpp b/apps/openmw/mwgui/container.cpp index fe811b47a9..b0e86f94d0 100644 --- a/apps/openmw/mwgui/container.cpp +++ b/apps/openmw/mwgui/container.cpp @@ -355,7 +355,10 @@ namespace MWGui ControllerButtons* ContainerWindow::getControllerButtons() { - mControllerButtons.mR1 = mDisposeCorpseButton->getVisible() ? "#{Interface:DisposeOfCorpse}" : {}; + if (mDisposeCorpseButton->getVisible()) + mControllerButtons.mR1 = "#{Interface:DisposeOfCorpse}"; + else + mControllerButtons.mR1.clear(); return &mControllerButtons; } From f339998a78382f9baf3c02e726d813d7d5fcfb72 Mon Sep 17 00:00:00 2001 From: Alexei Kotov Date: Wed, 27 Aug 2025 04:40:15 +0300 Subject: [PATCH 6/9] Update German Interface translations --- files/data/l10n/Interface/de.yaml | 35 ++++++++++++++++++++++++------- 1 file changed, 27 insertions(+), 8 deletions(-) diff --git a/files/data/l10n/Interface/de.yaml b/files/data/l10n/Interface/de.yaml index 8457797422..0413292169 100644 --- a/files/data/l10n/Interface/de.yaml +++ b/files/data/l10n/Interface/de.yaml @@ -1,3 +1,12 @@ +Ask: "Fragen" +Back: "Zurück" +Buy: "Kaufen" +Cancel: "Abbruch" +Close: "Schließen" +Copy: "Kopieren" +Create: "Herstellen" +DisposeOfCorpse: "Leiche beseitigen" +Done: "Fertig" DurationDay: "{days} d " DurationHour: "{hours} h " DurationMinute: "{minutes} min " @@ -17,18 +26,28 @@ DurationYear: |- one{{years} Jahr } other{{years} Jahre } } +Goodbye: "Lebt wohl!" +Info: "Info" +Inventory: "Inventar" +Item: "Gegenstand" +MagicEffects: "Magischer Effekt" +Mouse: "Maus" +Next: "Weiter" No: "Nein" -NotAvailableShort: "N/A" -Reset: "Zurücksetzen" -Yes: "Ja" -Cancel: "Abbrechen" -Close: "Schließen" # This one is a bit tricky since it can be translated to # "keiner"/"keine"/"keines", "nichts", or "leer" ("empty") depending on context. # # Using the "keine" option for now. None: "Keine" -OK: "OK" +NotAvailableShort: "N/A" Off: "Aus" -On: "Ein" -Copy: "Kopieren" \ No newline at end of file +OK: "OK" +On: "An" +Prev: "Zurück" +Reset: "Zurücksetzen" +ScrollUp: "Nach oben scrollen" +Select: "Auswählen" +Soul: "Seele" +Take: "Nehmen" +TakeAll: "Alles nehmen" +Yes: "Ja" From a89a6cfd5c6c07239b24cf63f841033174957a0c Mon Sep 17 00:00:00 2001 From: Alexei Kotov Date: Wed, 27 Aug 2025 10:00:41 +0300 Subject: [PATCH 7/9] Update Swedish Interface lines --- files/data/l10n/Interface/sv.yaml | 35 ++++++++++++++++++++++++------- 1 file changed, 27 insertions(+), 8 deletions(-) diff --git a/files/data/l10n/Interface/sv.yaml b/files/data/l10n/Interface/sv.yaml index 10a6c50b58..d5decc127d 100644 --- a/files/data/l10n/Interface/sv.yaml +++ b/files/data/l10n/Interface/sv.yaml @@ -1,3 +1,12 @@ +Ask: "Fråga" +Back: "Bakåt" +Buy: "Köp" +Cancel: "Avbryt" +Close: "Stäng" +Copy: "Kopiera" +Create: "Skapa" +DisposeOfCorpse: "Gör av med liket" +Done: "Färdig" DurationDay: "{days} d " DurationHour: "{hours} tim " DurationMinute: "{minutes} min " @@ -12,14 +21,24 @@ DurationYear: |- one{{years} år } other{{years} år } } +Goodbye: "Hejdå" +Info: "Info" +Item: "Föremål" +Inventory: "Inventariet" +MagicEffects: "Magiska effekter" +Mouse: "Mus" +Next: "Nästa" No: "Nej" -NotAvailableShort: "N/A" -Reset: "Reset" -Yes: "Ja" -On: "På" -Off: "Av" None: "Inget" +NotAvailableShort: "N/A" +Off: "Av" OK: "Ok" -Cancel: "Avbryt" -Close: "Stäng" -Copy: "Kopiera" \ No newline at end of file +On: "På" +Prev: "Föreg" +Reset: "Reset" +ScrollUp: "Scrolla upp" +Select: "Välj" +Soul: "Själ" +Take: "Ta" +TakeAll: "Ta allt" +Yes: "Ja" From 641e1fa3a230d85246057f460bd9f3d7ae7cd873 Mon Sep 17 00:00:00 2001 From: Alexei Kotov Date: Thu, 28 Aug 2025 13:04:45 +0300 Subject: [PATCH 8/9] Update Polish Interface lines --- files/data/l10n/Interface/pl.yaml | 81 ++++++++++++------------------- 1 file changed, 32 insertions(+), 49 deletions(-) diff --git a/files/data/l10n/Interface/pl.yaml b/files/data/l10n/Interface/pl.yaml index 3b0c871e2e..cb71ed6fcd 100644 --- a/files/data/l10n/Interface/pl.yaml +++ b/files/data/l10n/Interface/pl.yaml @@ -1,43 +1,17 @@ -DurationDay: |- - {days, plural, - one{{days} d. } - other{{days} d. } - few{{days} d. } - many{{days} d. } - } - -DurationHour: |- - {hours, plural, - one{{hours} godz. } - other{{hours} godz. } - few{{hours} godz. } - many{{hours} godz. } - } - -DurationMinute: |- - {minutes, plural, - one{{minutes} min } - other{{minutes} min } - few{{minutes} min } - many{{minutes} min } - } - -DurationSecond: |- - {seconds, plural, - one{{seconds} s } - other{{seconds} s } - few{{seconds} s } - many{{seconds} s } - } - -DurationMonth: |- - {months, plural, - one{{months} mies. } - other{{months} mies. } - few{{months} mies. } - many{{months} mies. } - } - +Ask: "Zapytaj" +Back: "Wstecz" +Buy: "Kup" +Cancel: "Anuluj" +Close: "Zamknij" +Copy: "Kopiuj" +Create: "Utwórz" +DisposeOfCorpse: "Usuń zwłoki" +Done: "Koniec" +DurationDay: "{days} d. " +DurationHour: "{hours} godz. " +DurationMinute: "{minutes} min " +DurationMonth: "{months} mies. " +DurationSecond: "{seconds} s " DurationYear: |- {years, plural, one{{years} rok } @@ -45,15 +19,24 @@ DurationYear: |- few{{years} lata } many{{years} lat } } - +Goodbye: "Do widzenia" +Info: "Info" +Inventory: "Ekwipunek" +Item: "Przedmiot" +MagicEffects: "Magiczne efekty" +Mouse: "Mysz" +Next: "Nast." No: "Nie" -NotAvailableShort: "N/D" -Reset: "Przywróć" -Yes: "Tak" -On: "Wł." -Off: "Wył." None: "Brak" +NotAvailableShort: "N/D" +Off: "Wył." OK: "OK" -Cancel: "Anuluj" -Close: "Zamknij" -Copy: "Kopiuj" +On: "Wł." +Prev: "Poprz." +Reset: "Przywróć" +ScrollUp: "Przewiń w górę" +Select: "Wybierz" +Soul: "Dusza" +Take: "Weź" +TakeAll: "Weź wszystko" +Yes: "Tak" From 4c1fdb8dec04620012b1fcc8fd668bd1697e5ea0 Mon Sep 17 00:00:00 2001 From: Alexei Kotov Date: Fri, 29 Aug 2025 12:50:14 +0300 Subject: [PATCH 9/9] Update Swedish Interface lines again --- files/data/l10n/Interface/sv.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/files/data/l10n/Interface/sv.yaml b/files/data/l10n/Interface/sv.yaml index d5decc127d..8e183edb55 100644 --- a/files/data/l10n/Interface/sv.yaml +++ b/files/data/l10n/Interface/sv.yaml @@ -5,8 +5,8 @@ Cancel: "Avbryt" Close: "Stäng" Copy: "Kopiera" Create: "Skapa" -DisposeOfCorpse: "Gör av med liket" -Done: "Färdig" +DisposeOfCorpse: "Undanröj liket" +Done: "Klar" DurationDay: "{days} d " DurationHour: "{hours} tim " DurationMinute: "{minutes} min " @@ -21,7 +21,7 @@ DurationYear: |- one{{years} år } other{{years} år } } -Goodbye: "Hejdå" +Goodbye: "Adjö" Info: "Info" Item: "Föremål" Inventory: "Inventariet" @@ -34,8 +34,8 @@ NotAvailableShort: "N/A" Off: "Av" OK: "Ok" On: "På" -Prev: "Föreg" -Reset: "Reset" +Prev: "Föreg." +Reset: "Återställ" ScrollUp: "Scrolla upp" Select: "Välj" Soul: "Själ"