diff --git a/.github/workflows/test-translations.yml b/.github/workflows/test-translations.yml new file mode 100644 index 00000000..b75cc7c4 --- /dev/null +++ b/.github/workflows/test-translations.yml @@ -0,0 +1,60 @@ +name: Check translations + +on: + push: + branches: + - master + pull_request: + branches: + - master + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Setup Python + uses: actions/setup-python@v4 + with: + python-version: '3.x' + + - name: Install Trubar + run: | + pip install trubar + + - name: Collect translations + run: | + cd i18n + trubar collect -s ../orangecanvas new.jaml + trubar merge -u Obsolete.jaml si/msgs.jaml new.jaml + trubar missing -o Missing.jaml new.jaml + if [ ! -s Missing.jaml ] + then + rm Missing.jaml + fi + + - name: Check Slovenian translations + run: | + cd i18n + for fn in Obsolete Missing + do + if [ -f $fn.jaml ] + then + echo "::group::$fn translations" + cat $fn.jaml + echo "::endgroup::" + fi + done + echo "-------------------------------" + trubar stat new.jaml + echo "-------------------------------" + if [ -f Missing.jaml ] || [ -f Obsolete.jaml ] + then + echo "### Missing or obsolete translations" >> $GITHUB_STEP_SUMMARY + echo "::error::Missing or obsolete translations" + echo "If you wish to fix this, see orange3/i18n/README.md" + exit 1 + else + echo "### All translations are up to date" >> $GITHUB_STEP_SUMMARY + fi diff --git a/i18n/si/msgs.jaml b/i18n/si/msgs.jaml new file mode 100644 index 00000000..40a858cc --- /dev/null +++ b/i18n/si/msgs.jaml @@ -0,0 +1,3610 @@ +__main__.py: + __main__: false +config.py: + T: false + 0.0: false + orangecanvas.widgets: false + orangecanvas.addon: false + keywords: false + orange: false + add-on: false + orangecanvas.examples: false + def `standard_location`: + Use QStandardPaths.writableLocation: false + class `Config`: + def `core_packages`: + orange-canvas-core >= 0.1a, < 0.2a: false + Bug Report: Poročila o napakah + Quick Start: Hiter začetek + Documentation: Uporabniška navodila + Screencasts: Zaslonski posnetki + Feedback: Povratne informacije + class `Default`: + biolab.si: false + Orange Canvas Core: false + def `application_icon`: + icons/orange-canvas.svg: false + def `splash_screen`: + icons/orange-canvas-core-splash.svg: false + svg: false + .: false + '#231F20': false + def `core_packages`: + orange-canvas-core >= 0.0, < 0.1a: false + def `init`: + Activating configuration for {}: false + startup/show-splash-screen: false + Show splash screen on startup: false + startup/show-welcome-screen: false + Show Welcome screen on startup: false + startup/load-crashed-workflows: false + Load crashed scratch workflows on startup: false + stylesheet: false + QSS stylesheet to use: false + schemeinfo/show-at-new-scheme: false + Show Workflow Properties when creating a new Workflow: false + mainwindow/scheme-margins-enabled: false + Show margins around the workflow view: false + mainwindow/show-scheme-shadow: false + Show shadow around the workflow view: false + mainwindow/toolbox-dock-exclusive: false + Should the toolbox show only one expanded category at the time: false + mainwindow/toolbox-dock-floatable: false + Is the canvas toolbox floatable (detachable from the main window): false + mainwindow/toolbox-dock-movable: false + Is the canvas toolbox movable (between left and right edge): false + mainwindow/toolbox-dock-use-popover-menu: false + 'Use a popover menu to select a widget when clicking on a category ': false + button: false + mainwindow/widgets-float-on-top: false + Float widgets on top of other windows: false + mainwindow/number-of-recent-schemes: false + Number of recent workflows to keep in history: false + schemeedit/show-channel-names: false + Show channel names: false + schemeedit/show-link-state: false + Show link state hints.: false + schemeedit/enable-node-animations: false + Enable node animations.: false + schemeedit/freeze-on-load: false + Freeze signal propagation when loading a workflow.: false + quickmenu/trigger-on-double-click: false + Show quick menu on double click.: false + quickmenu/trigger-on-right-click: false + Show quick menu on right click.: false + quickmenu/trigger-on-space-key: false + Show quick menu on space key press.: false + quickmenu/trigger-on-any-key: false + quickmenu/show-categories: false + Show categories in quick menu.: false + logging/level: false + Logging level: false + logging/show-on-error: false + Show log window on error: false + logging/dockable: false + Allow log window to be docked: false + help/open-in-external-browser: false + Open help in an external browser: false + add-ons/allow-conda: false + Install add-ons with conda: false + add-ons/pip-install-arguments: false + Arguments to pass to "pip install" when installing add-ons.: false + network/http-proxy: false + HTTP proxy.: false + network/https-proxy: false + HTTPS proxy.: false + def `log_dir`: + darwin: false + ~/Library/Logs: false + def `widget_settings_dir`: + "'widget_settings_dir' is deprecated.": false + widgets: false + def `open_config`: + open_config was never used and will be removed in the future: false + def `save_config`: + save_config was never used and will be removed in the future: false +main.py: + class `Main`: + def `parse_arguments`: + -style: false + def `splash_screen`: + startup/show-splash-screen: false + Helvetica: false + '#FFD39F': false + def `run_discovery`: + widget-registry.pck: false + rb: false + wb: false + def `run`: + 'Loading paths from argv: %s': false + ' ,': false + def `record_path`: + 'Path from FileOpen event: %s': false + def `open_request`: + pydevd.py: false + run_profiler.py: false + Restarting via exit code 96.: false + def `setup_logging`: + '%(asctime)s:%(levelname)s:%(name)s: %(message)s': false + -log-stream: false + canvas.log: false + w: false + def `setup_main_window`: + darwin: false + def `main_window_stylesheet`: + orange.qss: false + Switching default stylesheet to darkorange: false + darkorange.qss: false + Adding search path %r for prefix, %r: false + def `show_welcome_screen`: + startup/show-welcome-screen: false + def `setup_sys_redirections`: + -stdout: false + -stderr: false + def `fix_win_pythonw_std_stream`: + win32: false + pythonw.exe: false + w: false + utf-8: false + ignore: false + def `fix_set_proxy_env`: + fix_set_proxy_env is deprecated: false + http: false + https: false + network/: false + -proxy: false + _proxy: false + def `fix_macos_nswindow_tabbing`: + "'{__name__}.fix_macos_nswindow_tabbing()' is deprecated. Use ": false + "'orangecanvas.gui.utils.macos_set_nswindow_tabbing()' instead": false + def `breeze_dark`: + {__name__}'.breeze_dark()' has been moved to styles package.: false + def `make_file_handler`: + w: false + utf-8: false + def `arg_parser`: + def `log_level`: + 0: false + 1: false + 2: false + 3: false + 4: false + 5: false + Invalid log level {!r}: false + 'usage: %(prog)s [options] [workflow_file]': false + --no-discovery: false + store_true: false + Don't run widget discovery (use full cache instead): false + --force-discovery: false + Force full widget discovery (invalidate cache): false + --no-welcome: false + Don't show welcome dialog.: false + --no-splash: false + Don't show splash screen.: false + -l: false + --log-level: false + Logging level (0, 1, 2, 3, 4): false + --stylesheet: false + Application level CSS style sheet to use: false + --config: false + Configuration namespace: false + Deprecated: false + --qt: false + 'Additional arguments for QApplication.\nDeprecated. ': false + List all arguments as normally to pass it to QApplication.: false + --style: false + 'QStyle to use (deprecated: use -style)': false + __main__: false +resources.py: + def `package`: + .: false + def `search_paths_from_description`: + search_paths: false + class `resource_loader`: + def `split_prefix`: + :: false + def `is_valid_prefixed`: + :: false + def `open`: + rb: false + Cannot find %r: false + class `icon_loader`: + icons/default-widget.svg: false + def `icon_glob`: + _*: false + def `is_icon_glob`: + _*: false + def `get`: + .svg: false + current-color-scheme: false + def `load_styled_svg_icon`: + icons/{name}: false +application/aboutdialog.py: + '\ +
+

{name}

+

Version: {version}

+
+': '\ +
+

{name}

+

Različica: {version}

+
+' + class `AboutDialog`: + def `__init__`: + darwin: false +application/addons.py: + def `description_rich_text`: + Description: false + Summary: false + Description-Content-Type: false + text/x-rst: false + text/plain: false + class `ActionItem`: + def `data`: + Update: Posodobi + Install: Namesti + Uninstall: Odstrani + class `PluginsModel`: + def `__init__`: + Name: false + Version: false + Action: false + def `createRow`: + Summary: false + <: false + ->: false + {} {} {}: false + class `AddonManagerDialog`: + def `__init__`: + top-hbox-layout: false + filter-edit: false + Filter...: true + Add more...: Dodaj druge... + Add an add-on not listed below: Namesti dodatke, ki niso našteti spodaj + add-ons-view: false + description-text-area: false + def `start`: + Retrieving package list: Prejemam seznam dodatkov + def `__on_query_done`: + def `network_warning`: + Error fetching package list: Napaka pri prejemu seznama dodatkov + There's an issue with the internet connection.: Težava z mrežno povezavo. + Error: Napaka + Please check you are connected to the internet.\n\n: Preverite delovanje omrežne povezave.\n\n + 'If you are behind a proxy, please set it in Preferences ': Če uporabljate dostop prek proxyja, ga lahko nastavite v Nastavitve + - Network.: ' - Povezava' + def `itemState`: + Action: false + def `setItemState`: + Action: false + def `runQueryAndAddResults`: + Future[List[_QueryResult]]: false + Running query: Poizvedujem + def `__run_add_package_dialog`: + Add add-on by name: Dodaj dodatek po imenu + Package name: Ime dodatka + 'Enter a package name as displayed on ': 'Vnesi ime dodatka, kot je ' + PyPI (capitalization is not important): naveden na PyPI + Name:: ime + Add: Dodaj + def `__show_error_for_query`: + Error: Napaka + def `__on_add_query_finish`: + Query error:: Napak pri izvajanju: + Failed to query package index: Napaka pri poizvedovanju za dodatki + The following packages were not found: