Final text revision and added a vscode tasks to automatically extract text from code.

This commit is contained in:
Marco Rodolfi
2023-02-02 14:58:10 +01:00
parent bc3d57c5a5
commit d90aafdf0f
12 changed files with 1726 additions and 130 deletions
+11
View File
@@ -41,6 +41,17 @@
"command": "rsync -azp --rsh='ssh -p ${config:deckport} ${config:deckkey}' requirements.txt deck@${config:deckip}:${config:deckdir}/homebrew/dev/pluginloader/requirements.txt && ssh deck@${config:deckip} -p ${config:deckport} ${config:deckkey} 'python -m ensurepip && python -m pip install --upgrade pip && python -m pip install --upgrade setuptools && python -m pip install -r ${config:deckdir}/homebrew/dev/pluginloader/requirements.txt'", "command": "rsync -azp --rsh='ssh -p ${config:deckport} ${config:deckkey}' requirements.txt deck@${config:deckip}:${config:deckdir}/homebrew/dev/pluginloader/requirements.txt && ssh deck@${config:deckip} -p ${config:deckport} ${config:deckkey} 'python -m ensurepip && python -m pip install --upgrade pip && python -m pip install --upgrade setuptools && python -m pip install -r ${config:deckdir}/homebrew/dev/pluginloader/requirements.txt'",
"problemMatcher": [] "problemMatcher": []
}, },
{
"label": "extracttext",
"type": "shell",
"group": "none",
"dependsOn":[
"pnpmsetup"
],
"detail": "Check for new strings in the frontend source code and extract it into the corresponding json language files",
"command": "cd frontend && ./node_modules/.bin/i18next --config ./i18next-parser.config.mjs",
"problemMatcher": []
},
// BUILD // BUILD
{ {
"label": "pnpmsetup", "label": "pnpmsetup",
+125
View File
@@ -0,0 +1,125 @@
{
"BranchSelect": {
"update_channel": {
"label": ""
}
},
"Developer": {
"5secreload": "",
"disabling": "",
"enabling": ""
},
"DeveloperIndex": {
"react_devtools": {
"desc": "",
"label": ""
},
"valve_internal": {
"desc1": "",
"desc2": "",
"label": ""
}
},
"PluginCard": {
"plugin_full_access": "",
"plugin_install": "",
"plugin_no_desc": "",
"plugin_version_label": ""
},
"PluginInstallModal": {
"install": {
"button_idle": "",
"button_processing": "",
"desc": "",
"title": ""
}
},
"PluginListIndex": {
"list_no_plugin": "",
"list_plug_actions_label": "",
"list_update_to": "",
"reload": "",
"uninstall": ""
},
"PluginLoader": {
"decky_update_available": "",
"error": "",
"file_picker_cancel_text": "",
"plugin_error_uninstall": "",
"plugin_load_error": {
"message": "",
"toast": ""
},
"plugin_uninstall": {
"button": "",
"desc": "",
"title": ""
},
"plugin_update_one": "",
"plugin_update_other": ""
},
"RemoteDebugging": {
"remote_cef": {
"desc": "",
"label": ""
}
},
"SettingsGeneralIndex": {
"developer_mode": {
"desc": "",
"label": ""
},
"manual_plugin": {
"button": "",
"label": ""
}
},
"SettingsIndex": {
"developer_title": "",
"general_title": "",
"navbar_settings": "",
"plugins_title": ""
},
"Store": {
"store_contrib": {
"desc": "",
"label": ""
},
"store_search": {
"label": ""
},
"store_sort": {
"label": "",
"label_def": ""
},
"store_source": {
"desc": "",
"label": ""
},
"store_tabs": {
"about": "",
"alph_asce": "",
"alph_desc": "",
"title": ""
},
"store_testing_cta": ""
},
"StoreSelect": {
"custom_store_label": "",
"store_channel_label": ""
},
"Updater": {
"decky_updates": "",
"no_patch_notes_desc": "",
"updates": {
"check_button": "",
"checking": "",
"cur_version": "",
"install_button": "",
"label": "",
"lat_version": "",
"reloading": "",
"updating": ""
}
}
}
+59 -60
View File
@@ -5,123 +5,122 @@
} }
}, },
"Developer": { "Developer": {
"enabling": "Enabling", "5secreload": "Reloading in 5 seconds",
"disabling": "Disabling", "disabling": "Disabling",
"5secreload": "Reloading in 5 seconds" "enabling": "Enabling"
}, },
"DeveloperIndex": { "DeveloperIndex": {
"valve_internal": {
"label": "Enable Valve Internal",
"desc1": "Enables the Valve internal developer menu.",
"desc2": "Do not touch anything in this menu unless you know what it does."
},
"react_devtools": { "react_devtools": {
"label": "Enable React DevTools", "desc": "Enables connection to a computer running React DevTools. Changing this setting will reload Steam. Set the IP address before enabling.",
"desc": "Enables connection to a computer running React DevTools. Changing this setting will reload Steam. Set the IP address before enabling." "label": "Enable React DevTools"
},
"valve_internal": {
"desc1": "Enables the Valve internal developer menu.",
"desc2": "Do not touch anything in this menu unless you know what it does.",
"label": "Enable Valve Internal"
} }
}, },
"PluginCard": { "PluginCard": {
"plugin_version_label": "Plugin Version",
"plugin_full_access": "This plugin has full access to your Steam Deck.", "plugin_full_access": "This plugin has full access to your Steam Deck.",
"plugin_install": "Install", "plugin_install": "Install",
"plugin_no_desc": "No description provided." "plugin_no_desc": "No description provided.",
"plugin_version_label": "Plugin Version"
}, },
"PluginInstallModal": { "PluginInstallModal": {
"install": { "install": {
"title": "Install {{artifact}}",
"desc": "Are you sure you want to install {{artifact}} {{version}}?",
"button_idle": "Install", "button_idle": "Install",
"button_processing": "Installing" "button_processing": "Installing",
"desc": "Are you sure you want to install {{artifact}} {{version}}?",
"title": "Install {{artifact}}"
} }
}, },
"PluginListIndex": { "PluginListIndex": {
"list_no_plugin": "No plugins installed!", "list_no_plugin": "No plugins installed!",
"list_update_to": "Update to {{name}}",
"list_plug_actions_label": "Plugin Actions", "list_plug_actions_label": "Plugin Actions",
"list_update_to": "Update to {{name}}",
"reload": "Reload", "reload": "Reload",
"uninstall": "Uninstall" "uninstall": "Uninstall"
}, },
"PluginLoader": { "PluginLoader": {
"decky_update_available": "Update to {{tag_name}} available!", "decky_update_available": "Update to {{tag_name}} available!",
"plugin_update_one": "Updates available for 1 plugin!", "error": "Error",
"plugin_update_other": "Updates available for {{count}} plugins!", "file_picker_cancel_text": "User canceled",
"plugin_uninstall": { "plugin_error_uninstall": "Please go to {{-icon}} in the Decky menu if you need to uninstall this plugin.",
"title": "Uninstall {{name}}",
"desc": "Are you sure you want to uninstall {{name}}?",
"button": "Uninstall"
},
"plugin_load_error": { "plugin_load_error": {
"message": "Error loading plugin {{name}}", "message": "Error loading plugin {{name}}",
"toast": "Error loading {{name}}" "toast": "Error loading {{name}}"
}, },
"error": "Error", "plugin_uninstall": {
"plugin_error_uninstall": "Please go to {{-icon}} in the Decky menu if you need to uninstall this plugin.", "button": "Uninstall",
"file_picker_cancel_text": "User canceled" "desc": "Are you sure you want to uninstall {{name}}?",
"title": "Uninstall {{name}}"
},
"plugin_update_one": "Updates available for 1 plugin!",
"plugin_update_other": "Updates available for {{count}} plugins!"
}, },
"RemoteDebugging": { "RemoteDebugging": {
"remote_cef": { "remote_cef": {
"label": "Allow Remote CEF Debugging", "desc": "Allow unauthenticated access to the CEF debugger to anyone in your network",
"desc": "Allow unauthenticated access to the CEF debugger to anyone in your network" "label": "Allow Remote CEF Debugging"
} }
}, },
"SettingsGeneralIndex": { "SettingsGeneralIndex": {
"developer_mode": { "developer_mode": {
"label": "Developer mode", "desc": "Enables Decky's developer settings.",
"desc": "Enables Decky's developer settings." "label": "Developer mode"
}, },
"manual_plugin": { "manual_plugin": {
"label": "Manual plugin install", "button": "Install",
"button": "Install" "label": "Manual plugin install"
} }
}, },
"SettingsIndex": { "SettingsIndex": {
"general_title": "General",
"plugins_title": "Plugins",
"developer_title": "Developer", "developer_title": "Developer",
"navbar_settings": "Decky Settings" "general_title": "General",
"navbar_settings": "Decky Settings",
"plugins_title": "Plugins"
}, },
"Store": { "Store": {
"store_tabs": { "store_contrib": {
"title": "Browse", "desc": "If you would like to contribute to the Decky Plugin Store, check the SteamDeckHomebrew/decky-plugin-template repository on GitHub. Information on development and distribution is available in the README.",
"about": "About", "label": "Contributing"
"alph_desc": "Alphabetical (A to Z)",
"alph_asce": "Alphabetical (Z to A)"
}, },
"store_search": {
"label": "changeme"
},
"store_search_label": "Search",
"store_sort": { "store_sort": {
"label": "Sort", "label": "Sort",
"label_def": "Last Updated (Newest)" "label_def": "Last Updated (Newest)"
}, },
"store_filter": {
"label": "Filter",
"label_def": "All"
},
"store_search_label": "Search",
"store_testing_cta": "Please consider testing new plugins to help the Decky Loader team!",
"store_contrib": {
"label": "Contributing",
"desc": "If you would like to contribute to the Decky Plugin Store, check the SteamDeckHomebrew/decky-plugin-template repository on GitHub. Information on development and distribution is available in the README."
},
"store_source": { "store_source": {
"label": "Source Code", "desc": "All plugin source code is available on SteamDeckHomebrew/decky-plugin-database repository on GitHub.",
"desc": "All plugin source code is available on SteamDeckHomebrew/decky-plugin-database repository on GitHub." "label": "Source Code"
} },
"store_tabs": {
"about": "About",
"alph_asce": "Alphabetical (Z to A)",
"alph_desc": "Alphabetical (A to Z)",
"title": "Browse"
},
"store_testing_cta": "Please consider testing new plugins to help the Decky Loader team!"
}, },
"StoreSelect": { "StoreSelect": {
"store_channel_label": "Store Channel", "custom_store_label": "Custom Store",
"custom_store_label": "Custom Store" "store_channel_label": "Store Channel"
}, },
"Updater": { "Updater": {
"no_patch_notes_desc": "no patch notes for this version",
"decky_updates": "Decky Updates", "decky_updates": "Decky Updates",
"no_patch_notes_desc": "no patch notes for this version",
"updates": { "updates": {
"label": "Updates",
"cur_version": "Current version: {{ver}}",
"lat_version": "Latest version: {{ver}}",
"checking": "'Checking",
"check_button": "Check For Updates", "check_button": "Check For Updates",
"checking": "'Checking",
"cur_version": "Current version: {{ver}}",
"install_button": "Install Update", "install_button": "Install Update",
"label": "Updates",
"lat_version": "Latest version: {{ver}}",
"reloading": "Reloading", "reloading": "Reloading",
"updating": "Updating" "updating": "Updating"
} }
} }
} }
+8
View File
@@ -0,0 +1,8 @@
{
"Store": {
"store_filter": {
"label": "Filter",
"label_def": "All"
}
}
}
+126
View File
@@ -0,0 +1,126 @@
{
"BranchSelect": {
"update_channel": {
"label": ""
}
},
"Developer": {
"5secreload": "",
"disabling": "",
"enabling": ""
},
"DeveloperIndex": {
"react_devtools": {
"desc": "",
"label": ""
},
"valve_internal": {
"desc1": "",
"desc2": "",
"label": ""
}
},
"PluginCard": {
"plugin_full_access": "",
"plugin_install": "",
"plugin_no_desc": "",
"plugin_version_label": ""
},
"PluginInstallModal": {
"install": {
"button_idle": "",
"button_processing": "",
"desc": "",
"title": ""
}
},
"PluginListIndex": {
"list_no_plugin": "",
"list_plug_actions_label": "",
"list_update_to": "",
"reload": "",
"uninstall": ""
},
"PluginLoader": {
"decky_update_available": "",
"error": "",
"file_picker_cancel_text": "",
"plugin_error_uninstall": "",
"plugin_load_error": {
"message": "",
"toast": ""
},
"plugin_uninstall": {
"button": "",
"desc": "",
"title": ""
},
"plugin_update_one": "",
"plugin_update_many": "",
"plugin_update_other": ""
},
"RemoteDebugging": {
"remote_cef": {
"desc": "",
"label": ""
}
},
"SettingsGeneralIndex": {
"developer_mode": {
"desc": "",
"label": ""
},
"manual_plugin": {
"button": "",
"label": ""
}
},
"SettingsIndex": {
"developer_title": "",
"general_title": "",
"navbar_settings": "",
"plugins_title": ""
},
"Store": {
"store_contrib": {
"desc": "",
"label": ""
},
"store_search": {
"label": ""
},
"store_sort": {
"label": "",
"label_def": ""
},
"store_source": {
"desc": "",
"label": ""
},
"store_tabs": {
"about": "",
"alph_asce": "",
"alph_desc": "",
"title": ""
},
"store_testing_cta": ""
},
"StoreSelect": {
"custom_store_label": "",
"store_channel_label": ""
},
"Updater": {
"decky_updates": "",
"no_patch_notes_desc": "",
"updates": {
"check_button": "",
"checking": "",
"cur_version": "",
"install_button": "",
"label": "",
"lat_version": "",
"reloading": "",
"updating": ""
}
}
}
+126
View File
@@ -0,0 +1,126 @@
{
"BranchSelect": {
"update_channel": {
"label": ""
}
},
"Developer": {
"5secreload": "",
"disabling": "",
"enabling": ""
},
"DeveloperIndex": {
"react_devtools": {
"desc": "",
"label": ""
},
"valve_internal": {
"desc1": "",
"desc2": "",
"label": ""
}
},
"PluginCard": {
"plugin_full_access": "",
"plugin_install": "",
"plugin_no_desc": "",
"plugin_version_label": ""
},
"PluginInstallModal": {
"install": {
"button_idle": "",
"button_processing": "",
"desc": "",
"title": ""
}
},
"PluginListIndex": {
"list_no_plugin": "",
"list_plug_actions_label": "",
"list_update_to": "",
"reload": "",
"uninstall": ""
},
"PluginLoader": {
"decky_update_available": "",
"error": "",
"file_picker_cancel_text": "",
"plugin_error_uninstall": "",
"plugin_load_error": {
"message": "",
"toast": ""
},
"plugin_uninstall": {
"button": "",
"desc": "",
"title": ""
},
"plugin_update_one": "",
"plugin_update_many": "",
"plugin_update_other": ""
},
"RemoteDebugging": {
"remote_cef": {
"desc": "",
"label": ""
}
},
"SettingsGeneralIndex": {
"developer_mode": {
"desc": "",
"label": ""
},
"manual_plugin": {
"button": "",
"label": ""
}
},
"SettingsIndex": {
"developer_title": "",
"general_title": "",
"navbar_settings": "",
"plugins_title": ""
},
"Store": {
"store_contrib": {
"desc": "",
"label": ""
},
"store_search": {
"label": ""
},
"store_sort": {
"label": "",
"label_def": ""
},
"store_source": {
"desc": "",
"label": ""
},
"store_tabs": {
"about": "",
"alph_asce": "",
"alph_desc": "",
"title": ""
},
"store_testing_cta": ""
},
"StoreSelect": {
"custom_store_label": "",
"store_channel_label": ""
},
"Updater": {
"decky_updates": "",
"no_patch_notes_desc": "",
"updates": {
"check_button": "",
"checking": "",
"cur_version": "",
"install_button": "",
"label": "",
"lat_version": "",
"reloading": "",
"updating": ""
}
}
}
+60 -60
View File
@@ -5,123 +5,123 @@
} }
}, },
"Developer": { "Developer": {
"enabling": "Abilitando", "5secreload": "Ricaricando in 5 secondi",
"disabling": "Disabilitando", "disabling": "Disabilitando",
"5secreload": "Ricaricando in 5 secondi" "enabling": "Abilitando"
}, },
"DeveloperIndex": { "DeveloperIndex": {
"valve_internal": {
"label": "Abilita Menu Sviluppatore",
"desc1": "Abilita il menu di sviluppo interno di Valve.",
"desc2": "Non toccare nulla in questo menu se non sai quello che fa."
},
"react_devtools": { "react_devtools": {
"label": "Abilita i DevTools di React", "desc": "Abilita la connessione ad un computer che esegue i DevTools di React. Cambiando questa impostazione ricaricherà Steam. Imposta l'indirizzo IP prima di abilitarlo.",
"desc": "Abilita la connessione ad un computer che esegue i DevTools di React. Cambiando questa impostazione ricaricherà Steam. Imposta l'indirizzo IP prima di abilitarlo." "label": "Abilita i DevTools di React"
},
"valve_internal": {
"desc1": "Abilita il menu di sviluppo interno di Valve.",
"desc2": "Non toccare nulla in questo menu se non sai quello che fa.",
"label": "Abilita Menu Sviluppatore"
} }
}, },
"PluginCard": { "PluginCard": {
"plugin_version_label": "Versione Plugin",
"plugin_full_access": "Questo pluugin ha accesso completo al tuo Steam Deck.", "plugin_full_access": "Questo pluugin ha accesso completo al tuo Steam Deck.",
"plugin_install": "Installa", "plugin_install": "Installa",
"plugin_no_desc": "Nessuna descrizione fornita." "plugin_no_desc": "Nessuna descrizione fornita.",
"plugin_version_label": "Versione Plugin"
}, },
"PluginInstallModal": { "PluginInstallModal": {
"install": { "install": {
"title": "Installa {{artifact}}",
"desc": "Sei sicuro di voler installare {{artifact}} {{version}}?",
"button_idle": "Installa", "button_idle": "Installa",
"button_processing": "Installando" "button_processing": "Installando",
"desc": "Sei sicuro di voler installare {{artifact}} {{version}}?",
"title": "Installa {{artifact}}"
} }
}, },
"PluginListIndex": { "PluginListIndex": {
"list_no_plugin": "Nessun plugin installato!", "list_no_plugin": "Nessun plugin installato!",
"list_update_to": "Aggiornamento a {{name}}",
"list_plug_actions_label": "Operazioni sui plugins", "list_plug_actions_label": "Operazioni sui plugins",
"list_update_to": "Aggiornamento a {{name}}",
"reload": "Ricarica", "reload": "Ricarica",
"uninstall": "Rimuovi" "uninstall": "Rimuovi"
}, },
"PluginLoader": { "PluginLoader": {
"decky_update_available": "Disponibile aggiornamento a {{tag_name}}!", "decky_update_available": "Disponibile aggiornamento a {{tag_name}}!",
"plugin_update_one": "Aggiornamento disponibile per un plugin!", "error": "Errore",
"plugin_update_other": "Aggiornamento disponibile per {{count}} plugins!", "file_picker_cancel_text": "Annullato dall'utente",
"plugin_uninstall": { "plugin_error_uninstall": "Per rimuovere questo plugin vai su {{-icon}} nel menu di Decky.",
"title": "Rimozione di {{name}}",
"desc": "Rimuovo {{name}}?",
"button": "Rimuovi"
},
"plugin_load_error": { "plugin_load_error": {
"message": "Errore caricando il plugin {{name}}", "message": "Errore caricando il plugin {{name}}",
"toast": "Errore caricando {{name}}" "toast": "Errore caricando {{name}}"
}, },
"error": "Errore", "plugin_uninstall": {
"plugin_error_uninstall": "Per rimuovere questo plugin vai su {{-icon}} nel menu di Decky.", "button": "Rimuovi",
"file_picker_cancel_text": "Annullato dall'utente" "desc": "Rimuovo {{name}}?",
"title": "Rimozione di {{name}}"
},
"plugin_update_one": "Aggiornamento disponibile per un plugin!",
"plugin_update_many": "changeme",
"plugin_update_other": "Aggiornamento disponibile per {{count}} plugins!"
}, },
"RemoteDebugging": { "RemoteDebugging": {
"remote_cef": { "remote_cef": {
"label": "Permetti il debug remoto di CEF", "desc": "Permetti l'accesso non autenticato a chiunque sulla tua rete locale al debugger di CEF.",
"desc": "Permetti l'accesso non autenticato a chiunque sulla tua rete locale al debugger di CEF." "label": "Permetti il debug remoto di CEF"
} }
}, },
"SettingsGeneralIndex": { "SettingsGeneralIndex": {
"developer_mode": { "developer_mode": {
"label": "Modalità sviluppatore", "desc": "Abilità le impostazioni di sviluppo di Decky.",
"desc": "Abilità le impostazioni di sviluppo di Decky." "label": "Modalità sviluppatore"
}, },
"manual_plugin": { "manual_plugin": {
"label": "Installazione manuale plugins", "button": "Installa",
"button": "Installa" "label": "Installazione manuale plugins"
} }
}, },
"SettingsIndex": { "SettingsIndex": {
"general_title": "Generali",
"plugins_title": "Plugins",
"developer_title": "Sviluppatore", "developer_title": "Sviluppatore",
"navbar_settings": "Impostazioni Decky" "general_title": "Generali",
"navbar_settings": "Impostazioni Decky",
"plugins_title": "Plugins"
}, },
"Store": { "Store": {
"store_tabs": { "store_contrib": {
"title": "Naviga", "desc": "Se desideri contribuire allo store di Decky, puoi trovare un template caricato su GitHub all'indirizzo SteamDeckHomebrew/decky-plugin-template. Informazioni riguardo sviluppo e distribuzione sono disponibili nel README.",
"about": "About", "label": "Contribuisci"
"alph_desc": "Alfabetico (A a Z)",
"alph_asce": "Alfabetico (Z a A)"
}, },
"store_search": {
"label": "changeme"
},
"store_search_label": "Cerca",
"store_sort": { "store_sort": {
"label": "Ordina", "label": "Ordina",
"label_def": "Ultimo aggiornato (Più recente)" "label_def": "Ultimo aggiornato (Più recente)"
}, },
"store_filter": {
"label": "Filtra",
"label_def": "Tutto"
},
"store_search_label": "Cerca",
"store_testing_cta": "Valuta la possibilità di testare nuovi plugin per aiutare il team di Decky Loader!",
"store_contrib": {
"label": "Contribuisci",
"desc": "Se desideri contribuire allo store di Decky, puoi trovare un template caricato su GitHub all'indirizzo SteamDeckHomebrew/decky-plugin-template. Informazioni riguardo sviluppo e distribuzione sono disponibili nel README."
},
"store_source": { "store_source": {
"label": "Codice Sorgente", "desc": "Tutto il codice sorgente dei plugin è disponibile su GitHub all'indirizzo SteamDeckHomebrew/decky-plugin-database",
"desc": "Tutto il codice sorgente dei plugin è disponibile su GitHub all'indirizzo SteamDeckHomebrew/decky-plugin-database" "label": "Codice Sorgente"
} },
"store_tabs": {
"about": "About",
"alph_asce": "Alfabetico (Z a A)",
"alph_desc": "Alfabetico (A a Z)",
"title": "Naviga"
},
"store_testing_cta": "Valuta la possibilità di testare nuovi plugin per aiutare il team di Decky Loader!"
}, },
"StoreSelect": { "StoreSelect": {
"store_channel_label": "Canale del negozio", "custom_store_label": "Negozio custom",
"custom_store_label": "Negozio custom" "store_channel_label": "Canale del negozio"
}, },
"Updater": { "Updater": {
"no_patch_notes_desc": "nessuna patch notes per questa versione",
"decky_updates": "Aggiornamenti di Decky", "decky_updates": "Aggiornamenti di Decky",
"no_patch_notes_desc": "nessuna patch notes per questa versione",
"updates": { "updates": {
"label": "Aggiornamenti",
"cur_version": "Versione attuale: {{ver}}",
"lat_version": "Ultima versione: {{ver}}",
"checking": "Controllando",
"check_button": "Cerca aggiornamenti", "check_button": "Cerca aggiornamenti",
"checking": "Controllando",
"cur_version": "Versione attuale: {{ver}}",
"install_button": "Installa aggiornamento", "install_button": "Installa aggiornamento",
"label": "Aggiornamenti",
"lat_version": "Ultima versione: {{ver}}",
"reloading": "Ricaricando", "reloading": "Ricaricando",
"updating": "Aggiornando" "updating": "Aggiornando"
} }
} }
} }
+8
View File
@@ -0,0 +1,8 @@
{
"Store": {
"store_filter": {
"label": "Filtra",
"label_def": "Tutto"
}
}
}
+108
View File
@@ -0,0 +1,108 @@
// i18next-parser.config.js
export default {
contextSeparator: '_',
// Key separator used in your translation keys
createOldCatalogs: true,
// Save the \_old files
defaultNamespace: 'translation',
// Default namespace used in your i18next config
defaultValue: '',
// Default value to give to keys with no value
// You may also specify a function accepting the locale, namespace, key, and value as arguments
indentation: 2,
// Indentation of the catalog files
keepRemoved: false,
// Keep keys from the catalog that are no longer in code
keySeparator: '.',
// Key separator used in your translation keys
// If you want to use plain english keys, separators such as `.` and `:` will conflict. You might want to set `keySeparator: false` and `namespaceSeparator: false`. That way, `t('Status: Loading...')` will not think that there are a namespace and three separator dots for instance.
// see below for more details
lexers: {
hbs: ['HandlebarsLexer'],
handlebars: ['HandlebarsLexer'],
htm: ['HTMLLexer'],
html: ['HTMLLexer'],
mjs: ['JavascriptLexer'],
js: ['JavascriptLexer'], // if you're writing jsx inside .js files, change this to JsxLexer
ts: ['JavascriptLexer'],
jsx: ['JsxLexer'],
tsx: ['JsxLexer'],
default: ['JavascriptLexer'],
},
lineEnding: 'auto',
// Control the line ending. See options at https://github.com/ryanve/eol
locales: ['en', 'fr', 'de', 'es', 'it'],
// An array of the locales in your applications
namespaceSeparator: false,
// Namespace separator used in your translation keys
// If you want to use plain english keys, separators such as `.` and `:` will conflict. You might want to set `keySeparator: false` and `namespaceSeparator: false`. That way, `t('Status: Loading...')` will not think that there are a namespace and three separator dots for instance.
output: '../backend/locales/$LOCALE.json',
// Supports $LOCALE and $NAMESPACE injection
// Supports JSON (.json) and YAML (.yml) file formats
// Where to write the locale files relative to process.cwd()
pluralSeparator: '_',
// Plural separator used in your translation keys
// If you want to use plain english keys, separators such as `_` might conflict. You might want to set `pluralSeparator` to a different string that does not occur in your keys.
input: './src/**/*.{ts,tsx}',
// An array of globs that describe where to look for source files
// relative to the location of the configuration file
sort: true,
// Whether or not to sort the catalog. Can also be a [compareFunction](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#parameters)
verbose: false,
// Display info about the parsing including some stats
failOnWarnings: false,
// Exit with an exit code of 1 on warnings
failOnUpdate: false,
// Exit with an exit code of 1 when translations are updated (for CI purpose)
customValueTemplate: null,
// If you wish to customize the value output the value as an object, you can set your own format.
// ${defaultValue} is the default value you set in your translation function.
// Any other custom property will be automatically extracted.
//
// Example:
// {
// message: "${defaultValue}",
// description: "${maxLength}", // t('my-key', {maxLength: 150})
// }
resetDefaultValueLocale: null,
// The locale to compare with default values to determine whether a default value has been changed.
// If this is set and a default value differs from a translation in the specified locale, all entries
// for that key across locales are reset to the default value, and existing translations are moved to
// the `_old` file.
i18nextOptions: null,
// If you wish to customize options in internally used i18next instance, you can define an object with any
// configuration property supported by i18next (https://www.i18next.com/overview/configuration-options).
// { compatibilityJSON: 'v3' } can be used to generate v3 compatible plurals.
yamlOptions: null,
// If you wish to customize options for yaml output, you can define an object here.
// Configuration options are here (https://github.com/nodeca/js-yaml#dump-object---options-).
// Example:
// {
// lineWidth: -1,
// }
}
+1
View File
@@ -23,6 +23,7 @@
"@types/webpack": "^5.28.0", "@types/webpack": "^5.28.0",
"husky": "^8.0.1", "husky": "^8.0.1",
"eslint": "^8.33.0", "eslint": "^8.33.0",
"i18next-parser": "^7.6.0",
"import-sort-style-module": "^6.0.0", "import-sort-style-module": "^6.0.0",
"inquirer": "^8.2.4", "inquirer": "^8.2.4",
"prettier": "^2.7.1", "prettier": "^2.7.1",
+1089 -5
View File
File diff suppressed because it is too large Load Diff
+5 -5
View File
@@ -101,7 +101,7 @@ class PluginLoader extends Logger {
public async notifyUpdates() { public async notifyUpdates() {
const versionInfo = await this.updateVersion(); const versionInfo = await this.updateVersion();
const { t } = useTranslation('PluginLoader'); const { t } = useTranslation();
if (versionInfo?.remote && versionInfo?.remote?.tag_name != versionInfo?.current) { if (versionInfo?.remote && versionInfo?.remote?.tag_name != versionInfo?.current) {
this.toaster.toast({ this.toaster.toast({
title: 'Decky', title: 'Decky',
@@ -127,7 +127,7 @@ class PluginLoader extends Logger {
this.toaster.toast({ this.toaster.toast({
title: 'Decky', title: 'Decky',
//body: `Updates available for ${updates.size} plugin${updates.size > 1 ? 's' : ''}!`, //body: `Updates available for ${updates.size} plugin${updates.size > 1 ? 's' : ''}!`,
body: t('PluginLoader.plugin_update', updates.size.toString(10), { count: updates.size }), body: t('PluginLoader.plugin_update', { count: updates.size }),
onClick: () => Router.Navigate('/decky/settings/plugins'), onClick: () => Router.Navigate('/decky/settings/plugins'),
}); });
} }
@@ -247,10 +247,10 @@ class PluginLoader extends Logger {
version: version, version: version,
}); });
} catch (e) { } catch (e) {
this.error(t('PluginLoader.plugin_load_error', name), e); this.error(t('PluginLoader.plugin_load_error.message', { name: name }), e);
const TheError: FC<{}> = () => ( const TheError: FC<{}> = () => (
<> <>
{t('error')}:{' '} {t('PluginLoader.error')}:{' '}
<pre> <pre>
<code>{e instanceof Error ? e.stack : JSON.stringify(e)}</code> <code>{e instanceof Error ? e.stack : JSON.stringify(e)}</code>
</pre> </pre>
@@ -264,7 +264,7 @@ class PluginLoader extends Logger {
icon: <FaExclamationCircle />, icon: <FaExclamationCircle />,
}); });
this.toaster.toast({ this.toaster.toast({
title: t('PluginLoader.error_loading_plugin.toast', name), title: t('PluginLoader.plugin_load_error.toast', { name: name }),
body: '' + e, body: '' + e,
icon: <FaExclamationCircle />, icon: <FaExclamationCircle />,
}); });