Giter Club home page Giter Club logo

Comments (92)

nijel avatar nijel commented on May 18, 2024 4

Indeed .js is not supported by Weblate. The problem with that is that parsing .js files would be always incomplete as it would support only subset of the language. Similarly like we already have with .php files - people always want to add support for yet another way to express translations. If somebody contributes it, I have no problem with accepting it though.

However I'd really recommend to stick with some standard way to store translations and use that. There is already lot of supported formats.

from os.js.

BoFFire avatar BoFFire commented on May 18, 2024 3

Hello :)
I came here via Mastodon. I want to help to translate OS-JS to arabic.
ar neutral without ar_XX.
Thank you for this awesome project :)

from os.js.

filips123 avatar filips123 commented on May 18, 2024 2

@andersevenrud I created PRs os-js/osjs-client#18 and os-js/osjs-panels#6. I will translate other application and themes later.

from os.js.

BoFFire avatar BoFFire commented on May 18, 2024 2

Hi @andersevenrud yes :)
I'll try to find a convenient way to make part of translation easier as I'm used to work with .po gettext files and file formats like that.
It's a bit different when we translate in an RTL language ;) but I'm sticking with the project, no problem. First translations will be pushed soon :)

from os.js.

andersevenrud avatar andersevenrud commented on May 18, 2024 2

This is the first test of what will become the automated translation updates.

My local branches might not be up-to-date, but I will make this fully automated.

What do you think about the format ? Should it maybe be in tables ?!


osjs-client

The following keys are missing from the client translations:

vi_VN

LBL_CONNECTION_FAILED,
LBL_CONNECTION_FAILED_MESSAGE,
LBL_MINIMIZE,
LBL_MAXIMIZE,
LBL_RESTORE,
LBL_RAISE,
LBL_SHADE,
LBL_UNSHADE,
LBL_ONTOP,
LBL_RESIZE,
LBL_BACK,
LBL_FORWARD,
LBL_UPLOAD,
LBL_IMAGE

fr_FR

LBL_CONNECTION_FAILED,
LBL_CONNECTION_FAILED_MESSAGE,
LBL_MINIMIZE,
LBL_MAXIMIZE,
LBL_RESTORE,
LBL_RAISE,
LBL_SHADE,
LBL_UNSHADE,
LBL_ONTOP,
LBL_RESIZE,
LBL_BACK,
LBL_FORWARD,
LBL_UPLOAD,
LBL_IMAGE

de_DE

LBL_CONNECTION_FAILED,
LBL_CONNECTION_FAILED_MESSAGE,
LBL_MINIMIZE,
LBL_MAXIMIZE,
LBL_RESTORE,
LBL_RAISE,
LBL_SHADE,
LBL_UNSHADE,
LBL_ONTOP,
LBL_RESIZE,
LBL_BACK,
LBL_FORWARD,
LBL_UPLOAD,
LBL_IMAGE

packages

The following packages are missing either title or description in metadata.json:

  • osjs-ace-application: vi_VN, de_DE, sl_SI
  • osjs-calculator-application: vi_VN, de_DE, sl_SI
  • osjs-draw-application: vi_VN, de_DE, sl_SI
  • osjs-epub-application: nb_NO, vi_VN, fr_FR, de_DE, sl_SI
  • osjs-example-application: nb_NO, vi_VN, fr_FR, de_DE, sl_SI
  • osjs-example-iframe-application: nb_NO, vi_VN, fr_FR, de_DE, sl_SI
  • osjs-filemanager-application: vi_VN, sl_SI
  • osjs-freedesktop-sounds: nb_NO, vi_VN, de_DE, sl_SI
  • osjs-gnome-icons: nb_NO, vi_VN, de_DE, sl_SI
  • osjs-htmlviewer-application: vi_VN, sl_SI
  • osjs-musicplayer-application: vi_VN, sl_SI
  • osjs-pdfreader-application: vi_VN, de_DE, sl_SI
  • osjs-preview-application: vi_VN, de_DE, sl_SI
  • osjs-settings-application: vi_VN, de_DE, sl_SI
  • osjs-standard-dark-theme: nb_NO, vi_VN, de_DE, sl_SI
  • osjs-standard-theme: nb_NO, vi_VN
  • osjs-strophejs-application: vi_VN, de_DE, sl_SI
  • osjs-textpad-application: vi_VN, de_DE, sl_SI
  • osjs-vnc-application: nb_NO, vi_VN, fr_FR, de_DE, sl_SI
  • osjs-webodf-application: nb_NO, vi_VN, fr_FR, de_DE, sl_SI
  • osjs-windows8-theme: nb_NO, vi_VN, fr_FR, de_DE, sl_SI
  • osjs-writer-application: nb_NO, vi_VN, fr_FR, de_DE, sl_SI
  • osjs-xpra-application: vi_VN, fr_FR, de_DE, sl_SI
  • osjs-xterm-application: vi_VN, sl_SI

from os.js.

frju365 avatar frju365 commented on May 18, 2024 2

Thanks for this summary. Will see these package tomorrow for FR and DE

from os.js.

andersevenrud avatar andersevenrud commented on May 18, 2024 2

@filips123 I've pulled all of your translations locally and published all of it, so as of now everything should be in sync 😊

from os.js.

BoFFire avatar BoFFire commented on May 18, 2024 2

Hi @filips123, I'm totally against using Transifex because (…) it's another subject. I prefer Weblate which is Free and Open Source and supports pull, fetch, commit from/to Github/Gitlab

from os.js.

andersevenrud avatar andersevenrud commented on May 18, 2024 2

@filips123 I'm now actually contemplating adding support for callbacks in the localization that OS.js uses so that it is possible to perform all kinds of actions to any given translation. Example:

const some_LANGUAGE = {
  // _('COUNT_FLAT', 0)
  COUNT_FLAT: 'Showing {0} object(s)',

  // _('COUNT_OBJECT', {count: 0})
  COUNT_OBJECT: 'Showing {count} object(s)',

  // _('COUNT_DYNAMIC_FLAT', 0)
  COUNT_DYNAMIC_FLAT: (count) => count === 1
    ? `Showing ${count} object`, 
    : `Showing ${count} objects`,

  // _('COUNT_DYNAMIC_OBJECT', {count: 0})
  COUNT_DYNAMIC_OBJECT: ({count}) => count === 1
    ? `Showing ${count} object`, 
    : `Showing ${count} objects`
};

This of course won't make it possible to make any of the ready solutions discussed for managing translations (unless you can write support via plugins), but it will make it very easy to implement proper plurals, formatting, interpolations etc. into the current system without introducing any overhead (most of the localization libraries are 20%+ the total size of the OS.js client codebase).

Thoughts ? :)

Edit

Just adding to this, that we can still make some sort of online interface for checking the state of things, because what we mostly care about here is the actual keys. The values of these can also be diffed by using git -- so if any of the actual texts have been changed, this could be detected.

As for an online interface, I was just thinking of throwing together something quick somewhat based on what I've already done.

Edit Fixed example

from os.js.

andersevenrud avatar andersevenrud commented on May 18, 2024 2

Just an addition to my latest comment I'm prototyping an interface here: https://codepen.io/andersevenrud/pen/PXQRNe

from os.js.

junland avatar junland commented on May 18, 2024 1

+1 Props for all the translators :)

from os.js.

marktopper avatar marktopper commented on May 18, 2024 1

@andersevenrud: Just updated my comment above.

from os.js.

JamesZEMOURI avatar JamesZEMOURI commented on May 18, 2024 1

@andersevenrud i am up to

from os.js.

frju365 avatar frju365 commented on May 18, 2024 1

I'm ok to translate into French, Portuguese and German.

from os.js.

filips123 avatar filips123 commented on May 18, 2024 1

@andersevenrud I can translate to Slovenian.
What should be translated in v3?

from os.js.

filips123 avatar filips123 commented on May 18, 2024 1

I created few more PRs (os-js/osjs-client#26, os-js/osjs-freedesktop-sounds#2, os-js/osjs-gnome-icons#2, os-js/osjs-standard-dark-theme#2, os-js/osjs-standard-theme#4). I will translate applications later when they become almost finished because they could maybe be changed until stable v3.

You should remove milestone 2.2.0 from this issue 😃.

from os.js.

filips123 avatar filips123 commented on May 18, 2024 1

You should post message every time when it is need to translate new thing.

from os.js.

andersevenrud avatar andersevenrud commented on May 18, 2024 1

@BoFFire Hi!

Nice! Translations are always welcome :)

Instructions are in the top comment. If anything is unclear, let me know.

from os.js.

andersevenrud avatar andersevenrud commented on May 18, 2024 1

@BoFFire Did you figure things out ? :)

from os.js.

andersevenrud avatar andersevenrud commented on May 18, 2024 1

@BoFFire It just dawned on me, but I have to add support for RTL CSS styles. I've opened an issue on this and will fix for next publish 🤓

os-js/osjs-client#38

from os.js.

filips123 avatar filips123 commented on May 18, 2024 1

I think you should use some standard and portable format, maybe JSON because it probably won't be hard to convert JS to it.
You should use some format that supports custom plurals (and not just zero, one and more) because some languages (eg. Slovenian) use very complicated ways for plural. It should probably support something like CLDR.

You could probably use JSON i18next files.

from os.js.

matheusfelipeog avatar matheusfelipeog commented on May 18, 2024 1

@andersevenrud, how can i help translate to portuguese(brazil) and what should be translated in v3?

from os.js.

andersevenrud avatar andersevenrud commented on May 18, 2024 1

@matheusfelipeog Hi!

If you look at the description of this issue you'll find basic instructions on how to do this.

Basically, these are the files that contain translations:

What you need to do is to:

  1. Clone Fork these repositories
  2. Create a new branch in these repos (ex: git checkout -b feature/portoguese-translation)
  3. Modify the files needed for translations
  4. Commit the changes and push to your cloned github repository
  5. Create a pull request that I will approve and merge into the official codebase

If you have any further questions about this you can join the official chat https://gitter.im/os-js/OS.js (as to not make this issue long)

from os.js.

andersevenrud avatar andersevenrud commented on May 18, 2024 1

@matheusfelipeog Also, FYI, the following repositories have a name and description field in the metadata.json file that also has translations in them.

Edit You don't have to do the ones named "example"

from os.js.

yutyo avatar yutyo commented on May 18, 2024 1

I am working on tr_TR translations. Will make a PR when its done.

from os.js.

yutyo avatar yutyo commented on May 18, 2024 1

@andersevenrud here they are: os-js/osjs-client#149

from os.js.

andersevenrud avatar andersevenrud commented on May 18, 2024 1

@yutyo Could you translate the other packages as well (noted in OP) ? Then I could merge all changes at once and release it with complete translations. The client package only covers general messages.

from os.js.

yutyo avatar yutyo commented on May 18, 2024 1

@yutyo Could you translate the other packages as well (noted in OP) ? Then I could merge all changes at once and release it with complete translations. The client package only covers general messages.

Done:

from os.js.

andersevenrud avatar andersevenrud commented on May 18, 2024 1

@yutyo Much appreciated :) I've released new builds of all the changes.

from os.js.

andersevenrud avatar andersevenrud commented on May 18, 2024 1

@lentas1 https://manual.os-js.org/guide/translate/

from os.js.

andersevenrud avatar andersevenrud commented on May 18, 2024

@fabel Wanna translate the default Applications ? :)

from os.js.

andersevenrud avatar andersevenrud commented on May 18, 2024

@emersion Wanna translate the default Applications ? :)

from os.js.

andersevenrud avatar andersevenrud commented on May 18, 2024

@fabel and @emersion Make sure you pull latest sources if you do want to do it

from os.js.

Fedor-T avatar Fedor-T commented on May 18, 2024

@andersevenrud yes, a bit later

from os.js.

andersevenrud avatar andersevenrud commented on May 18, 2024

@emersion Just pinging to see if you have any time to do these translations ? :)

from os.js.

andersevenrud avatar andersevenrud commented on May 18, 2024

@zqqq Can you look at translating the default applications ? Just like you did with Settings 😄

from os.js.

andersevenrud avatar andersevenrud commented on May 18, 2024

@zqqq Sorry. I meant just like you did with the core. You can find what files in the description

from os.js.

eraffaelli avatar eraffaelli commented on May 18, 2024

I'm working on a fr_FR version for the packages. I'll contact you and PR when done.

from os.js.

simonecorsi avatar simonecorsi commented on May 18, 2024

I've worked on an it_IT Italian version, I'm opening a pull request and contacting you :)

from os.js.

andersevenrud avatar andersevenrud commented on May 18, 2024

👍

from os.js.

sieira avatar sieira commented on May 18, 2024

I'll do the es_ES as soon as I find some time

from os.js.

simonecorsi avatar simonecorsi commented on May 18, 2024

Updated it_IT following #289, PR coming soon

from os.js.

marktopper avatar marktopper commented on May 18, 2024

Locale bg_BG misses:

 - ERR_ARGUMENT_FMT
 - ERR_LOGIN_FMT
 - ERR_LOGIN_INVALID
 - ERR_NO_SESSION
 - DIALOG_FILE_ERROR_FIND
 - ERR_VFS_TARGET_NOT_EXISTS
 - ERR_VFSMODULE_INVALID
 - ERR_VFSMODULE_INVALID_FMT
 - ERR_VFSMODULE_INVALID_METHOD
 - ERR_VFSMODULE_INVALID_METHOD_FMT
 - ERR_VFSMODULE_INVALID_TYPE
 - ERR_VFSMODULE_INVALID_TYPE_FMT
 - ERR_VFSMODULE_INVALID_CONFIG
 - ERR_VFSMODULE_INVALID_CONFIG_FMT
 - ERR_VFSMODULE_ALREADY_MOUNTED
 - ERR_VFSMODULE_ALREADY_MOUNTED_FMT
 - ERR_VFSMODULE_NOT_MOUNTED
 - ERR_VFSMODULE_NOT_MOUNTED_FMT
 - ERR_VFSMODULE_EXCEPTION
 - ERR_VFSMODULE_EXCEPTION_FMT
 - ERR_VFSMODULE_NOT_FOUND_FMT
 - ERR_VFSMODULE_READONLY
 - ERR_VFSMODULE_READONLY_FMT
 - ERR_VFSMODULE_MKFILE
 - ERR_VFSMODULE_MKFILE_FMT
 - ERR_VFSMODULE_FIND
 - ERR_VFSMODULE_FIND_FMT
 - ERR_VFSMODULE_FREESPACE
 - ERR_VFSMODULE_FREESPACE_FMT
 - ERR_VFSMODULE_EXISTS
 - ERR_VFSMODULE_EXISTS_FMT
 - ZIP_PRELOAD_FAIL
 - ZIP_VENDOR_FAIL
 - ZIP_NO_RESOURCE
 - ZIP_NO_PATH
 - SEARCH_LOADING
 - SEARCH_NO_RESULTS
 - LBL_SHOW_NAVIGATION
 - LBL_SHOW_HIDDENFILES
 - LBL_SHOW_FILEEXTENSIONS
 - LBL_MOUNT
 - LBL_DESCRIPTION
 - LBL_USERNAME
 - LBL_PASSWORD
 - LBL_HOST
 - LBL_NAMESPACE
 - LBL_SEARCH
 - LBL_BACK
 - LBL_ICONS
 - LBL_ICON
 - LBL_UNINSTALL
 - LBL_REGENERATE
 - LBL_WINDOWMANAGER
 - LBL_HOTKEY
 - LBL_HOTKEYS
 - LBL_MOUNTS
 - LBL_ID
 - LBL_APPLICATION
 - LBL_SCOPE
 - LBL_HIDE
 - LBL_REPOSITORY
 - LBL_VERSION
 - LBL_AUTHOR
 - LBL_GROUPS
 - LBL_AUTOHIDE
 - LBL_PERSONAL
 - LBL_SYSTEM
 - LBL_STARTING
 - LBL_SOUNDS
 - LBL_STORE
 - LBL_LOCALE
 - LBL_PACKAGE
 - LBL_PACKAGES
 - LBL_INPUT
 - LBL_MISC
 - LBL_OTHER
 - LBL_USERS
 - LBL_FONTS

Locale de_DE misses:

 - ERR_OPERATION_TIMEOUT
 - ERR_OPERATION_TIMEOUT_FMT
 - ERR_ARGUMENT_FMT
 - ERR_LOGIN_FMT
 - ERR_LOGIN_INVALID
 - ERR_NO_SESSION
 - MSG_SESSION_WARNING
 - BUGREPORT_MSG
 - SERVICENOTIFICATION_TOOLTIP
 - ERR_UTILS_XHR_FATAL
 - ERR_UTILS_XHR_FMT
 - DIALOG_FILE_ERROR_FIND
 - DIALOG_UPLOAD_TOO_BIG
 - DIALOG_UPLOAD_TOO_BIG_FMT
 - WLAPI_DISABLED
 - WLAPI_SIGN_OUT
 - WLAPI_LOAD_FAILURE
 - WLAPI_LOGIN_FAILED
 - WLAPI_LOGIN_FAILED_FMT
 - WLAPI_INIT_FAILED_FMT
 - ERR_VFS_UNAVAILABLE
 - ERR_VFS_TARGET_NOT_EXISTS
 - ERR_VFS_REMOTEREAD_EMPTY
 - ERR_VFSMODULE_INVALID
 - ERR_VFSMODULE_INVALID_FMT
 - ERR_VFSMODULE_INVALID_METHOD
 - ERR_VFSMODULE_INVALID_METHOD_FMT
 - ERR_VFSMODULE_INVALID_TYPE
 - ERR_VFSMODULE_INVALID_TYPE_FMT
 - ERR_VFSMODULE_INVALID_CONFIG
 - ERR_VFSMODULE_INVALID_CONFIG_FMT
 - ERR_VFSMODULE_ALREADY_MOUNTED
 - ERR_VFSMODULE_ALREADY_MOUNTED_FMT
 - ERR_VFSMODULE_NOT_MOUNTED
 - ERR_VFSMODULE_NOT_MOUNTED_FMT
 - ERR_VFSMODULE_EXCEPTION
 - ERR_VFSMODULE_EXCEPTION_FMT
 - ERR_VFSMODULE_NOT_FOUND_FMT
 - ERR_VFSMODULE_READONLY
 - ERR_VFSMODULE_READONLY_FMT
 - ERR_VFSMODULE_XHR_ERROR
 - ERR_VFSMODULE_ROOT_ID
 - ERR_VFSMODULE_NOSUCH
 - ERR_VFSMODULE_PARENT
 - ERR_VFSMODULE_PARENT_FMT
 - ERR_VFSMODULE_SCANDIR
 - ERR_VFSMODULE_SCANDIR_FMT
 - ERR_VFSMODULE_READ
 - ERR_VFSMODULE_READ_FMT
 - ERR_VFSMODULE_WRITE
 - ERR_VFSMODULE_WRITE_FMT
 - ERR_VFSMODULE_COPY
 - ERR_VFSMODULE_COPY_FMT
 - ERR_VFSMODULE_UNLINK
 - ERR_VFSMODULE_UNLINK_FMT
 - ERR_VFSMODULE_MOVE
 - ERR_VFSMODULE_MOVE_FMT
 - ERR_VFSMODULE_EXIST
 - ERR_VFSMODULE_EXIST_FMT
 - ERR_VFSMODULE_FILEINFO
 - ERR_VFSMODULE_FILEINFO_FMT
 - ERR_VFSMODULE_MKDIR
 - ERR_VFSMODULE_MKDIR_FMT
 - ERR_VFSMODULE_MKFILE
 - ERR_VFSMODULE_MKFILE_FMT
 - ERR_VFSMODULE_URL
 - ERR_VFSMODULE_URL_FMT
 - ERR_VFSMODULE_TRASH
 - ERR_VFSMODULE_TRASH_FMT
 - ERR_VFSMODULE_UNTRASH
 - ERR_VFSMODULE_UNTRASH_FMT
 - ERR_VFSMODULE_EMPTYTRASH
 - ERR_VFSMODULE_EMPTYTRASH_FMT
 - ERR_VFSMODULE_FIND
 - ERR_VFSMODULE_FIND_FMT
 - ERR_VFSMODULE_FREESPACE
 - ERR_VFSMODULE_FREESPACE_FMT
 - ERR_VFSMODULE_EXISTS
 - ERR_VFSMODULE_EXISTS_FMT
 - DROPBOX_NOTIFICATION_TITLE
 - DROPBOX_SIGN_OUT
 - ONEDRIVE_ERR_RESOLVE
 - ZIP_PRELOAD_FAIL
 - ZIP_VENDOR_FAIL
 - ZIP_NO_RESOURCE
 - ZIP_NO_PATH
 - SEARCH_LOADING
 - SEARCH_NO_RESULTS
 - ERR_PACKAGE_EXISTS
 - LBL_STATUS
 - LBL_READONLY
 - LBL_CREATED
 - LBL_MODIFIED
 - LBL_SHOW_COLUMNS
 - LBL_MOVE
 - LBL_OPTIONS
 - LBL_OK
 - LBL_DIRECTORY
 - LBL_CREATE
 - LBL_BUGREPORT
 - LBL_INSTALL
 - LBL_UPDATE
 - LBL_REMOVE
 - LBL_SHOW_NAVIGATION
 - LBL_SHOW_HIDDENFILES
 - LBL_SHOW_FILEEXTENSIONS
 - LBL_MOUNT
 - LBL_DESCRIPTION
 - LBL_USERNAME
 - LBL_PASSWORD
 - LBL_HOST
 - LBL_NAMESPACE
 - LBL_SEARCH
 - LBL_BACK
 - LBL_ICONS
 - LBL_ICON
 - LBL_UNINSTALL
 - LBL_REGENERATE
 - LBL_WINDOWMANAGER
 - LBL_HOTKEY
 - LBL_HOTKEYS
 - LBL_MOUNTS
 - LBL_ID
 - LBL_APPLICATION
 - LBL_SCOPE
 - LBL_HIDE
 - LBL_REPOSITORY
 - LBL_VERSION
 - LBL_AUTHOR
 - LBL_GROUPS
 - LBL_AUTOHIDE
 - LBL_PERSONAL
 - LBL_SYSTEM
 - LBL_STARTING
 - LBL_SOUNDS
 - LBL_STORE
 - LBL_LOCALE
 - LBL_PACKAGE
 - LBL_PACKAGES
 - LBL_INPUT
 - LBL_MISC
 - LBL_OTHER
 - LBL_USERS
 - LBL_FONTS

Locale es_ES misses:

 - ERR_OPERATION_TIMEOUT
 - ERR_OPERATION_TIMEOUT_FMT
 - ERR_ARGUMENT_FMT
 - ERR_LOGIN_FMT
 - ERR_LOGIN_INVALID
 - ERR_NO_SESSION
 - DIALOG_FILE_ERROR_FIND
 - ERR_VFS_TARGET_NOT_EXISTS
 - ERR_VFSMODULE_INVALID
 - ERR_VFSMODULE_INVALID_FMT
 - ERR_VFSMODULE_INVALID_METHOD
 - ERR_VFSMODULE_INVALID_METHOD_FMT
 - ERR_VFSMODULE_INVALID_TYPE
 - ERR_VFSMODULE_INVALID_TYPE_FMT
 - ERR_VFSMODULE_INVALID_CONFIG
 - ERR_VFSMODULE_INVALID_CONFIG_FMT
 - ERR_VFSMODULE_ALREADY_MOUNTED
 - ERR_VFSMODULE_ALREADY_MOUNTED_FMT
 - ERR_VFSMODULE_NOT_MOUNTED
 - ERR_VFSMODULE_NOT_MOUNTED_FMT
 - ERR_VFSMODULE_EXCEPTION
 - ERR_VFSMODULE_EXCEPTION_FMT
 - ERR_VFSMODULE_NOT_FOUND_FMT
 - ERR_VFSMODULE_READONLY
 - ERR_VFSMODULE_READONLY_FMT
 - ERR_VFSMODULE_MKFILE
 - ERR_VFSMODULE_MKFILE_FMT
 - ERR_VFSMODULE_FIND
 - ERR_VFSMODULE_FIND_FMT
 - ERR_VFSMODULE_FREESPACE
 - ERR_VFSMODULE_FREESPACE_FMT
 - ERR_VFSMODULE_EXISTS
 - ERR_VFSMODULE_EXISTS_FMT
 - ZIP_PRELOAD_FAIL
 - ZIP_VENDOR_FAIL
 - ZIP_NO_RESOURCE
 - ZIP_NO_PATH
 - SEARCH_LOADING
 - SEARCH_NO_RESULTS
 - ERR_PACKAGE_EXISTS
 - LBL_DIRECTORY
 - LBL_CREATE
 - LBL_BUGREPORT
 - LBL_INSTALL
 - LBL_UPDATE
 - LBL_REMOVE
 - LBL_SHOW_SIDEBAR
 - LBL_SHOW_NAVIGATION
 - LBL_SHOW_HIDDENFILES
 - LBL_SHOW_FILEEXTENSIONS
 - LBL_MOUNT
 - LBL_DESCRIPTION
 - LBL_USERNAME
 - LBL_PASSWORD
 - LBL_HOST
 - LBL_NAMESPACE
 - LBL_SEARCH
 - LBL_BACK
 - LBL_ICONS
 - LBL_ICON
 - LBL_UNINSTALL
 - LBL_REGENERATE
 - LBL_WINDOWMANAGER
 - LBL_HOTKEY
 - LBL_HOTKEYS
 - LBL_MOUNTS
 - LBL_ID
 - LBL_APPLICATION
 - LBL_SCOPE
 - LBL_HIDE
 - LBL_REPOSITORY
 - LBL_VERSION
 - LBL_AUTHOR
 - LBL_GROUPS
 - LBL_AUTOHIDE
 - LBL_PERSONAL
 - LBL_SYSTEM
 - LBL_STARTING
 - LBL_SOUNDS
 - LBL_STORE
 - LBL_LOCALE
 - LBL_PACKAGE
 - LBL_PACKAGES
 - LBL_INPUT
 - LBL_MISC
 - LBL_OTHER
 - LBL_USERS
 - LBL_FONTS

Locale fr_FR misses:

 - ERR_NO_SESSION
 - DIALOG_FILE_ERROR_FIND
 - ERR_VFS_TARGET_NOT_EXISTS
 - ERR_VFSMODULE_READONLY
 - ERR_VFSMODULE_READONLY_FMT
 - ERR_VFSMODULE_MKFILE
 - ERR_VFSMODULE_MKFILE_FMT
 - ERR_VFSMODULE_FIND
 - ERR_VFSMODULE_FIND_FMT
 - ERR_VFSMODULE_FREESPACE
 - ERR_VFSMODULE_FREESPACE_FMT
 - ERR_VFSMODULE_EXISTS
 - ERR_VFSMODULE_EXISTS_FMT
 - SEARCH_LOADING
 - SEARCH_NO_RESULTS
 - LBL_SEARCH
 - LBL_BACK
 - LBL_ICON
 - LBL_UNINSTALL
 - LBL_REGENERATE
 - LBL_WINDOWMANAGER
 - LBL_HOTKEY
 - LBL_HOTKEYS
 - LBL_MOUNTS
 - LBL_ID
 - LBL_REPOSITORY
 - LBL_PERSONAL
 - LBL_SYSTEM
 - LBL_STARTING
 - LBL_STORE
 - LBL_LOCALE
 - LBL_PACKAGE
 - LBL_INPUT
 - LBL_MISC
 - LBL_OTHER
 - LBL_USERS
 - LBL_FONTS

Locale ru_RU misses:

 - ERR_OPERATION_TIMEOUT
 - ERR_OPERATION_TIMEOUT_FMT
 - ERR_ARGUMENT_FMT
 - ERR_LOGIN_FMT
 - ERR_LOGIN_INVALID
 - ERR_NO_SESSION
 - MSG_SESSION_WARNING
 - BUGREPORT_MSG
 - SERVICENOTIFICATION_TOOLTIP
 - ERR_UTILS_XHR_FATAL
 - ERR_UTILS_XHR_FMT
 - DIALOG_FILE_ERROR_FIND
 - DIALOG_UPLOAD_TOO_BIG
 - DIALOG_UPLOAD_TOO_BIG_FMT
 - WLAPI_DISABLED
 - WLAPI_SIGN_OUT
 - WLAPI_LOAD_FAILURE
 - WLAPI_LOGIN_FAILED
 - WLAPI_LOGIN_FAILED_FMT
 - WLAPI_INIT_FAILED_FMT
 - ERR_VFS_UNAVAILABLE
 - ERR_VFS_TARGET_NOT_EXISTS
 - ERR_VFS_REMOTEREAD_EMPTY
 - ERR_VFSMODULE_INVALID
 - ERR_VFSMODULE_INVALID_FMT
 - ERR_VFSMODULE_INVALID_METHOD
 - ERR_VFSMODULE_INVALID_METHOD_FMT
 - ERR_VFSMODULE_INVALID_TYPE
 - ERR_VFSMODULE_INVALID_TYPE_FMT
 - ERR_VFSMODULE_INVALID_CONFIG
 - ERR_VFSMODULE_INVALID_CONFIG_FMT
 - ERR_VFSMODULE_ALREADY_MOUNTED
 - ERR_VFSMODULE_ALREADY_MOUNTED_FMT
 - ERR_VFSMODULE_NOT_MOUNTED
 - ERR_VFSMODULE_NOT_MOUNTED_FMT
 - ERR_VFSMODULE_EXCEPTION
 - ERR_VFSMODULE_EXCEPTION_FMT
 - ERR_VFSMODULE_NOT_FOUND_FMT
 - ERR_VFSMODULE_READONLY
 - ERR_VFSMODULE_READONLY_FMT
 - ERR_VFSMODULE_XHR_ERROR
 - ERR_VFSMODULE_ROOT_ID
 - ERR_VFSMODULE_NOSUCH
 - ERR_VFSMODULE_PARENT
 - ERR_VFSMODULE_PARENT_FMT
 - ERR_VFSMODULE_SCANDIR
 - ERR_VFSMODULE_SCANDIR_FMT
 - ERR_VFSMODULE_READ
 - ERR_VFSMODULE_READ_FMT
 - ERR_VFSMODULE_WRITE
 - ERR_VFSMODULE_WRITE_FMT
 - ERR_VFSMODULE_COPY
 - ERR_VFSMODULE_COPY_FMT
 - ERR_VFSMODULE_UNLINK
 - ERR_VFSMODULE_UNLINK_FMT
 - ERR_VFSMODULE_MOVE
 - ERR_VFSMODULE_MOVE_FMT
 - ERR_VFSMODULE_EXIST
 - ERR_VFSMODULE_EXIST_FMT
 - ERR_VFSMODULE_FILEINFO
 - ERR_VFSMODULE_FILEINFO_FMT
 - ERR_VFSMODULE_MKDIR
 - ERR_VFSMODULE_MKDIR_FMT
 - ERR_VFSMODULE_MKFILE
 - ERR_VFSMODULE_MKFILE_FMT
 - ERR_VFSMODULE_URL
 - ERR_VFSMODULE_URL_FMT
 - ERR_VFSMODULE_TRASH
 - ERR_VFSMODULE_TRASH_FMT
 - ERR_VFSMODULE_UNTRASH
 - ERR_VFSMODULE_UNTRASH_FMT
 - ERR_VFSMODULE_EMPTYTRASH
 - ERR_VFSMODULE_EMPTYTRASH_FMT
 - ERR_VFSMODULE_FIND
 - ERR_VFSMODULE_FIND_FMT
 - ERR_VFSMODULE_FREESPACE
 - ERR_VFSMODULE_FREESPACE_FMT
 - ERR_VFSMODULE_EXISTS
 - ERR_VFSMODULE_EXISTS_FMT
 - DROPBOX_NOTIFICATION_TITLE
 - DROPBOX_SIGN_OUT
 - ONEDRIVE_ERR_RESOLVE
 - ZIP_PRELOAD_FAIL
 - ZIP_VENDOR_FAIL
 - ZIP_NO_RESOURCE
 - ZIP_NO_PATH
 - SEARCH_LOADING
 - SEARCH_NO_RESULTS
 - ERR_PACKAGE_EXISTS
 - LBL_STATUS
 - LBL_READONLY
 - LBL_CREATED
 - LBL_MODIFIED
 - LBL_SHOW_COLUMNS
 - LBL_MOVE
 - LBL_OPTIONS
 - LBL_OK
 - LBL_DIRECTORY
 - LBL_CREATE
 - LBL_BUGREPORT
 - LBL_INSTALL
 - LBL_UPDATE
 - LBL_REMOVE
 - LBL_SHOW_NAVIGATION
 - LBL_SHOW_HIDDENFILES
 - LBL_SHOW_FILEEXTENSIONS
 - LBL_MOUNT
 - LBL_DESCRIPTION
 - LBL_USERNAME
 - LBL_PASSWORD
 - LBL_HOST
 - LBL_NAMESPACE
 - LBL_SEARCH
 - LBL_BACK
 - LBL_ICONS
 - LBL_ICON
 - LBL_UNINSTALL
 - LBL_REGENERATE
 - LBL_WINDOWMANAGER
 - LBL_HOTKEY
 - LBL_HOTKEYS
 - LBL_MOUNTS
 - LBL_ID
 - LBL_APPLICATION
 - LBL_SCOPE
 - LBL_HIDE
 - LBL_REPOSITORY
 - LBL_VERSION
 - LBL_AUTHOR
 - LBL_GROUPS
 - LBL_PERSONAL
 - LBL_SYSTEM
 - LBL_STARTING
 - LBL_SOUNDS
 - LBL_STORE
 - LBL_LOCALE
 - LBL_PACKAGE
 - LBL_PACKAGES
 - LBL_INPUT
 - LBL_MISC
 - LBL_OTHER
 - LBL_USERS
 - LBL_FONTS

Locale ko_KR misses:

 - ERR_NO_SESSION
 - DIALOG_FILE_ERROR_FIND
 - ERR_VFS_TARGET_NOT_EXISTS
 - ERR_VFSMODULE_READONLY
 - ERR_VFSMODULE_READONLY_FMT
 - ERR_VFSMODULE_MKFILE
 - ERR_VFSMODULE_MKFILE_FMT
 - ERR_VFSMODULE_FIND
 - ERR_VFSMODULE_FIND_FMT
 - ERR_VFSMODULE_FREESPACE
 - ERR_VFSMODULE_FREESPACE_FMT
 - ERR_VFSMODULE_EXISTS
 - ERR_VFSMODULE_EXISTS_FMT
 - SEARCH_LOADING
 - SEARCH_NO_RESULTS
 - LBL_BACK
 - LBL_ICON
 - LBL_UNINSTALL
 - LBL_REGENERATE
 - LBL_WINDOWMANAGER
 - LBL_HOTKEY
 - LBL_HOTKEYS
 - LBL_MOUNTS
 - LBL_ID
 - LBL_HIDE
 - LBL_REPOSITORY
 - LBL_PERSONAL
 - LBL_SYSTEM
 - LBL_STARTING
 - LBL_STORE
 - LBL_LOCALE
 - LBL_PACKAGE
 - LBL_INPUT
 - LBL_MISC
 - LBL_OTHER
 - LBL_USERS
 - LBL_FONTS

Locale zh_CN misses:

 - ERR_OPERATION_TIMEOUT
 - ERR_OPERATION_TIMEOUT_FMT
 - ERR_ARGUMENT_FMT
 - ERR_LOGIN_FMT
 - ERR_LOGIN_INVALID
 - ERR_NO_SESSION
 - MSG_SESSION_WARNING
 - BUGREPORT_MSG
 - SERVICENOTIFICATION_TOOLTIP
 - ERR_UTILS_XHR_FATAL
 - ERR_UTILS_XHR_FMT
 - DIALOG_FILE_ERROR_FIND
 - WLAPI_INIT_FAILED_FMT
 - ERR_VFS_TARGET_NOT_EXISTS
 - ERR_VFS_REMOTEREAD_EMPTY
 - ERR_VFSMODULE_INVALID
 - ERR_VFSMODULE_INVALID_FMT
 - ERR_VFSMODULE_INVALID_METHOD
 - ERR_VFSMODULE_INVALID_METHOD_FMT
 - ERR_VFSMODULE_INVALID_TYPE
 - ERR_VFSMODULE_INVALID_TYPE_FMT
 - ERR_VFSMODULE_INVALID_CONFIG
 - ERR_VFSMODULE_INVALID_CONFIG_FMT
 - ERR_VFSMODULE_ALREADY_MOUNTED
 - ERR_VFSMODULE_ALREADY_MOUNTED_FMT
 - ERR_VFSMODULE_NOT_MOUNTED
 - ERR_VFSMODULE_NOT_MOUNTED_FMT
 - ERR_VFSMODULE_EXCEPTION
 - ERR_VFSMODULE_EXCEPTION_FMT
 - ERR_VFSMODULE_NOT_FOUND_FMT
 - ERR_VFSMODULE_READONLY
 - ERR_VFSMODULE_READONLY_FMT
 - ERR_VFSMODULE_MKFILE
 - ERR_VFSMODULE_MKFILE_FMT
 - ERR_VFSMODULE_FIND
 - ERR_VFSMODULE_FIND_FMT
 - ERR_VFSMODULE_FREESPACE
 - ERR_VFSMODULE_FREESPACE_FMT
 - ERR_VFSMODULE_EXISTS
 - ERR_VFSMODULE_EXISTS_FMT
 - ZIP_PRELOAD_FAIL
 - ZIP_VENDOR_FAIL
 - ZIP_NO_RESOURCE
 - ZIP_NO_PATH
 - SEARCH_LOADING
 - SEARCH_NO_RESULTS
 - ERR_PACKAGE_EXISTS
 - LBL_CREATED
 - LBL_MODIFIED
 - LBL_SHOW_COLUMNS
 - LBL_MOVE
 - LBL_OPTIONS
 - LBL_OK
 - LBL_DIRECTORY
 - LBL_CREATE
 - LBL_BUGREPORT
 - LBL_INSTALL
 - LBL_UPDATE
 - LBL_REMOVE
 - LBL_SHOW_SIDEBAR
 - LBL_SHOW_NAVIGATION
 - LBL_SHOW_HIDDENFILES
 - LBL_SHOW_FILEEXTENSIONS
 - LBL_MOUNT
 - LBL_DESCRIPTION
 - LBL_USERNAME
 - LBL_PASSWORD
 - LBL_HOST
 - LBL_NAMESPACE
 - LBL_SEARCH
 - LBL_BACK
 - LBL_ICONS
 - LBL_ICON
 - LBL_UNINSTALL
 - LBL_REGENERATE
 - LBL_DESKTOP
 - LBL_WINDOWMANAGER
 - LBL_HOTKEY
 - LBL_HOTKEYS
 - LBL_MOUNTS
 - LBL_ID
 - LBL_APPLICATION
 - LBL_SCOPE
 - LBL_HIDE
 - LBL_REPOSITORY
 - LBL_VERSION
 - LBL_AUTHOR
 - LBL_GROUPS
 - LBL_AUTOHIDE
 - LBL_PERSONAL
 - LBL_SYSTEM
 - LBL_STARTING
 - LBL_SOUNDS
 - LBL_STORE
 - LBL_LOCALE
 - LBL_PACKAGE
 - LBL_PACKAGES
 - LBL_INPUT
 - LBL_MISC
 - LBL_OTHER
 - LBL_USERS
 - LBL_FONTS

Locale nl_NL misses:

 - ERR_NO_SESSION
 - DIALOG_FILE_ERROR_FIND
 - ERR_VFS_TARGET_NOT_EXISTS
 - ERR_VFSMODULE_READONLY
 - ERR_VFSMODULE_READONLY_FMT
 - ERR_VFSMODULE_MKFILE
 - ERR_VFSMODULE_MKFILE_FMT
 - ERR_VFSMODULE_FIND
 - ERR_VFSMODULE_FIND_FMT
 - ERR_VFSMODULE_FREESPACE
 - ERR_VFSMODULE_FREESPACE_FMT
 - ERR_VFSMODULE_EXISTS
 - ERR_VFSMODULE_EXISTS_FMT
 - SEARCH_LOADING
 - SEARCH_NO_RESULTS
 - LBL_SEARCH
 - LBL_BACK
 - LBL_ICONS
 - LBL_ICON
 - LBL_UNINSTALL
 - LBL_REGENERATE
 - LBL_WINDOWMANAGER
 - LBL_HOTKEY
 - LBL_HOTKEYS
 - LBL_MOUNTS
 - LBL_ID
 - LBL_APPLICATION
 - LBL_SCOPE
 - LBL_HIDE
 - LBL_REPOSITORY
 - LBL_VERSION
 - LBL_AUTHOR
 - LBL_GROUPS
 - LBL_AUTOHIDE
 - LBL_PERSONAL
 - LBL_SYSTEM
 - LBL_STARTING
 - LBL_SOUNDS
 - LBL_STORE
 - LBL_LOCALE
 - LBL_PACKAGE
 - LBL_PACKAGES
 - LBL_INPUT
 - LBL_MISC
 - LBL_OTHER
 - LBL_USERS
 - LBL_FONTS

Locale pl_PL misses:

 - ERR_ARGUMENT_FMT
 - ERR_LOGIN_FMT
 - ERR_LOGIN_INVALID
 - ERR_NO_SESSION
 - DIALOG_FILE_ERROR_FIND
 - ERR_VFS_TARGET_NOT_EXISTS
 - ERR_VFSMODULE_INVALID
 - ERR_VFSMODULE_INVALID_FMT
 - ERR_VFSMODULE_INVALID_METHOD
 - ERR_VFSMODULE_INVALID_METHOD_FMT
 - ERR_VFSMODULE_INVALID_TYPE
 - ERR_VFSMODULE_INVALID_TYPE_FMT
 - ERR_VFSMODULE_INVALID_CONFIG
 - ERR_VFSMODULE_INVALID_CONFIG_FMT
 - ERR_VFSMODULE_ALREADY_MOUNTED
 - ERR_VFSMODULE_ALREADY_MOUNTED_FMT
 - ERR_VFSMODULE_NOT_MOUNTED
 - ERR_VFSMODULE_NOT_MOUNTED_FMT
 - ERR_VFSMODULE_EXCEPTION
 - ERR_VFSMODULE_EXCEPTION_FMT
 - ERR_VFSMODULE_NOT_FOUND_FMT
 - ERR_VFSMODULE_READONLY
 - ERR_VFSMODULE_READONLY_FMT
 - ERR_VFSMODULE_MKFILE
 - ERR_VFSMODULE_MKFILE_FMT
 - ERR_VFSMODULE_FIND
 - ERR_VFSMODULE_FIND_FMT
 - ERR_VFSMODULE_FREESPACE
 - ERR_VFSMODULE_FREESPACE_FMT
 - ERR_VFSMODULE_EXISTS
 - ERR_VFSMODULE_EXISTS_FMT
 - ZIP_PRELOAD_FAIL
 - ZIP_VENDOR_FAIL
 - ZIP_NO_RESOURCE
 - ZIP_NO_PATH
 - SEARCH_LOADING
 - SEARCH_NO_RESULTS
 - LBL_SHOW_NAVIGATION
 - LBL_SHOW_HIDDENFILES
 - LBL_SHOW_FILEEXTENSIONS
 - LBL_MOUNT
 - LBL_DESCRIPTION
 - LBL_PASSWORD
 - LBL_HOST
 - LBL_NAMESPACE
 - LBL_SEARCH
 - LBL_BACK
 - LBL_ICON
 - LBL_UNINSTALL
 - LBL_REGENERATE
 - LBL_WINDOWMANAGER
 - LBL_HOTKEY
 - LBL_HOTKEYS
 - LBL_MOUNTS
 - LBL_ID
 - LBL_REPOSITORY
 - LBL_PERSONAL
 - LBL_SYSTEM
 - LBL_STARTING
 - LBL_STORE
 - LBL_LOCALE
 - LBL_PACKAGE
 - LBL_INPUT
 - LBL_MISC
 - LBL_OTHER
 - LBL_USERS
 - LBL_FONTS

Locale pt_BR misses:

 - ERR_ARGUMENT_FMT
 - ERR_LOGIN_FMT
 - ERR_LOGIN_INVALID
 - ERR_NO_SESSION
 - DIALOG_FILE_ERROR_FIND
 - ERR_VFS_TARGET_NOT_EXISTS
 - ERR_VFSMODULE_INVALID
 - ERR_VFSMODULE_INVALID_FMT
 - ERR_VFSMODULE_INVALID_METHOD
 - ERR_VFSMODULE_INVALID_METHOD_FMT
 - ERR_VFSMODULE_INVALID_TYPE
 - ERR_VFSMODULE_INVALID_TYPE_FMT
 - ERR_VFSMODULE_INVALID_CONFIG
 - ERR_VFSMODULE_INVALID_CONFIG_FMT
 - ERR_VFSMODULE_ALREADY_MOUNTED
 - ERR_VFSMODULE_ALREADY_MOUNTED_FMT
 - ERR_VFSMODULE_NOT_MOUNTED
 - ERR_VFSMODULE_NOT_MOUNTED_FMT
 - ERR_VFSMODULE_EXCEPTION
 - ERR_VFSMODULE_EXCEPTION_FMT
 - ERR_VFSMODULE_NOT_FOUND_FMT
 - ERR_VFSMODULE_READONLY
 - ERR_VFSMODULE_READONLY_FMT
 - ERR_VFSMODULE_MKFILE
 - ERR_VFSMODULE_MKFILE_FMT
 - ERR_VFSMODULE_FIND
 - ERR_VFSMODULE_FIND_FMT
 - ERR_VFSMODULE_FREESPACE
 - ERR_VFSMODULE_FREESPACE_FMT
 - ERR_VFSMODULE_EXISTS
 - ERR_VFSMODULE_EXISTS_FMT
 - ZIP_PRELOAD_FAIL
 - ZIP_VENDOR_FAIL
 - ZIP_NO_RESOURCE
 - ZIP_NO_PATH
 - SEARCH_LOADING
 - SEARCH_NO_RESULTS
 - LBL_SHOW_SIDEBAR
 - LBL_SHOW_NAVIGATION
 - LBL_SHOW_HIDDENFILES
 - LBL_SHOW_FILEEXTENSIONS
 - LBL_MOUNT
 - LBL_DESCRIPTION
 - LBL_USERNAME
 - LBL_PASSWORD
 - LBL_HOST
 - LBL_NAMESPACE
 - LBL_SEARCH
 - LBL_BACK
 - LBL_ICONS
 - LBL_ICON
 - LBL_UNINSTALL
 - LBL_REGENERATE
 - LBL_DESKTOP
 - LBL_WINDOWMANAGER
 - LBL_HOTKEY
 - LBL_HOTKEYS
 - LBL_MOUNTS
 - LBL_ID
 - LBL_APPLICATION
 - LBL_SCOPE
 - LBL_HIDE
 - LBL_REPOSITORY
 - LBL_VERSION
 - LBL_AUTHOR
 - LBL_GROUPS
 - LBL_AUTOHIDE
 - LBL_PERSONAL
 - LBL_SYSTEM
 - LBL_STARTING
 - LBL_SOUNDS
 - LBL_STORE
 - LBL_LOCALE
 - LBL_PACKAGE
 - LBL_PACKAGES
 - LBL_INPUT
 - LBL_MISC
 - LBL_OTHER
 - LBL_USERS
 - LBL_FONTS

Locale sk_SK misses:

 - ERR_ARGUMENT_FMT
 - ERR_LOGIN_FMT
 - ERR_LOGIN_INVALID
 - ERR_NO_SESSION
 - DIALOG_FILE_ERROR_FIND
 - ERR_VFS_TARGET_NOT_EXISTS
 - ERR_VFSMODULE_INVALID
 - ERR_VFSMODULE_INVALID_FMT
 - ERR_VFSMODULE_INVALID_METHOD
 - ERR_VFSMODULE_INVALID_METHOD_FMT
 - ERR_VFSMODULE_INVALID_TYPE
 - ERR_VFSMODULE_INVALID_TYPE_FMT
 - ERR_VFSMODULE_INVALID_CONFIG
 - ERR_VFSMODULE_INVALID_CONFIG_FMT
 - ERR_VFSMODULE_ALREADY_MOUNTED
 - ERR_VFSMODULE_ALREADY_MOUNTED_FMT
 - ERR_VFSMODULE_NOT_MOUNTED
 - ERR_VFSMODULE_NOT_MOUNTED_FMT
 - ERR_VFSMODULE_EXCEPTION
 - ERR_VFSMODULE_EXCEPTION_FMT
 - ERR_VFSMODULE_NOT_FOUND_FMT
 - ERR_VFSMODULE_READONLY
 - ERR_VFSMODULE_READONLY_FMT
 - ERR_VFSMODULE_MKFILE
 - ERR_VFSMODULE_MKFILE_FMT
 - ERR_VFSMODULE_FIND
 - ERR_VFSMODULE_FIND_FMT
 - ERR_VFSMODULE_FREESPACE
 - ERR_VFSMODULE_FREESPACE_FMT
 - ERR_VFSMODULE_EXISTS
 - ERR_VFSMODULE_EXISTS_FMT
 - ZIP_PRELOAD_FAIL
 - ZIP_VENDOR_FAIL
 - ZIP_NO_RESOURCE
 - ZIP_NO_PATH
 - SEARCH_LOADING
 - SEARCH_NO_RESULTS
 - LBL_SHOW_NAVIGATION
 - LBL_SHOW_HIDDENFILES
 - LBL_SHOW_FILEEXTENSIONS
 - LBL_MOUNT
 - LBL_DESCRIPTION
 - LBL_USERNAME
 - LBL_PASSWORD
 - LBL_HOST
 - LBL_NAMESPACE
 - LBL_SEARCH
 - LBL_BACK
 - LBL_ICONS
 - LBL_ICON
 - LBL_UNINSTALL
 - LBL_REGENERATE
 - LBL_DESKTOP
 - LBL_WINDOWMANAGER
 - LBL_HOTKEY
 - LBL_HOTKEYS
 - LBL_MOUNTS
 - LBL_ID
 - LBL_APPLICATION
 - LBL_SCOPE
 - LBL_HIDE
 - LBL_REPOSITORY
 - LBL_VERSION
 - LBL_AUTHOR
 - LBL_GROUPS
 - LBL_AUTOHIDE
 - LBL_PERSONAL
 - LBL_SYSTEM
 - LBL_STARTING
 - LBL_SOUNDS
 - LBL_STORE
 - LBL_LOCALE
 - LBL_PACKAGE
 - LBL_PACKAGES
 - LBL_INPUT
 - LBL_MISC
 - LBL_OTHER
 - LBL_USERS
 - LBL_FONTS

Locale vi_VN misses:

 - ERR_VFSMODULE_EXISTS
 - ERR_VFSMODULE_EXISTS_FMT
 - LBL_BACK
 - LBL_ICONS
 - LBL_ICON
 - LBL_UNINSTALL
 - LBL_REGENERATE
 - LBL_WINDOWMANAGER
 - LBL_HOTKEY
 - LBL_HOTKEYS
 - LBL_MOUNTS
 - LBL_ID
 - LBL_REPOSITORY

Locale tr_TR misses:

 - ERR_ARGUMENT_FMT
 - ERR_LOGIN_FMT
 - ERR_LOGIN_INVALID
 - ERR_NO_SESSION
 - DIALOG_FILE_ERROR_FIND
 - ERR_VFS_TARGET_NOT_EXISTS
 - ERR_VFSMODULE_INVALID
 - ERR_VFSMODULE_INVALID_FMT
 - ERR_VFSMODULE_INVALID_METHOD
 - ERR_VFSMODULE_INVALID_METHOD_FMT
 - ERR_VFSMODULE_INVALID_TYPE
 - ERR_VFSMODULE_INVALID_TYPE_FMT
 - ERR_VFSMODULE_INVALID_CONFIG
 - ERR_VFSMODULE_INVALID_CONFIG_FMT
 - ERR_VFSMODULE_ALREADY_MOUNTED
 - ERR_VFSMODULE_ALREADY_MOUNTED_FMT
 - ERR_VFSMODULE_NOT_MOUNTED
 - ERR_VFSMODULE_NOT_MOUNTED_FMT
 - ERR_VFSMODULE_EXCEPTION
 - ERR_VFSMODULE_EXCEPTION_FMT
 - ERR_VFSMODULE_NOT_FOUND_FMT
 - ERR_VFSMODULE_READONLY
 - ERR_VFSMODULE_READONLY_FMT
 - ERR_VFSMODULE_MKFILE
 - ERR_VFSMODULE_MKFILE_FMT
 - ERR_VFSMODULE_FIND
 - ERR_VFSMODULE_FIND_FMT
 - ERR_VFSMODULE_FREESPACE
 - ERR_VFSMODULE_FREESPACE_FMT
 - ERR_VFSMODULE_EXISTS
 - ERR_VFSMODULE_EXISTS_FMT
 - ZIP_PRELOAD_FAIL
 - ZIP_VENDOR_FAIL
 - ZIP_NO_RESOURCE
 - ZIP_NO_PATH
 - SEARCH_LOADING
 - SEARCH_NO_RESULTS
 - LBL_SHOW_NAVIGATION
 - LBL_SHOW_HIDDENFILES
 - LBL_SHOW_FILEEXTENSIONS
 - LBL_MOUNT
 - LBL_DESCRIPTION
 - LBL_USERNAME
 - LBL_PASSWORD
 - LBL_HOST
 - LBL_NAMESPACE
 - LBL_SEARCH
 - LBL_BACK
 - LBL_ICONS
 - LBL_ICON
 - LBL_UNINSTALL
 - LBL_REGENERATE
 - LBL_WINDOWMANAGER
 - LBL_HOTKEY
 - LBL_HOTKEYS
 - LBL_MOUNTS
 - LBL_ID
 - LBL_APPLICATION
 - LBL_SCOPE
 - LBL_HIDE
 - LBL_REPOSITORY
 - LBL_VERSION
 - LBL_AUTHOR
 - LBL_GROUPS
 - LBL_AUTOHIDE
 - LBL_PERSONAL
 - LBL_SYSTEM
 - LBL_STARTING
 - LBL_SOUNDS
 - LBL_STORE
 - LBL_LOCALE
 - LBL_PACKAGE
 - LBL_PACKAGES
 - LBL_INPUT
 - LBL_MISC
 - LBL_OTHER
 - LBL_USERS
 - LBL_FONTS

Locale fa_FA misses:

 - ERR_ARGUMENT_FMT
 - ERR_NO_SESSION
 - DIALOG_FILE_ERROR_FIND
 - ERR_VFS_TARGET_NOT_EXISTS
 - ERR_VFSMODULE_NOT_FOUND_FMT
 - ERR_VFSMODULE_READONLY
 - ERR_VFSMODULE_READONLY_FMT
 - ERR_VFSMODULE_MKFILE
 - ERR_VFSMODULE_MKFILE_FMT
 - ERR_VFSMODULE_FIND
 - ERR_VFSMODULE_FIND_FMT
 - ERR_VFSMODULE_FREESPACE
 - ERR_VFSMODULE_FREESPACE_FMT
 - ERR_VFSMODULE_EXISTS
 - ERR_VFSMODULE_EXISTS_FMT
 - SEARCH_LOADING
 - SEARCH_NO_RESULTS
 - LBL_MOUNT
 - LBL_DESCRIPTION
 - LBL_USERNAME
 - LBL_PASSWORD
 - LBL_HOST
 - LBL_NAMESPACE
 - LBL_SEARCH
 - LBL_BACK
 - LBL_ICONS
 - LBL_ICON
 - LBL_UNINSTALL
 - LBL_REGENERATE
 - LBL_DESKTOP
 - LBL_WINDOWMANAGER
 - LBL_HOTKEY
 - LBL_HOTKEYS
 - LBL_MOUNTS
 - LBL_ID
 - LBL_APPLICATION
 - LBL_SCOPE
 - LBL_HIDE
 - LBL_REPOSITORY
 - LBL_VERSION
 - LBL_AUTHOR
 - LBL_GROUPS
 - LBL_AUTOHIDE
 - LBL_PERSONAL
 - LBL_SYSTEM
 - LBL_STARTING
 - LBL_SOUNDS
 - LBL_STORE
 - LBL_LOCALE
 - LBL_PACKAGE
 - LBL_PACKAGES
 - LBL_INPUT
 - LBL_MISC
 - LBL_OTHER
 - LBL_USERS
 - LBL_FONTS

Locale ar_DZ misses:

 - ERR_VFSMODULE_MKFILE
 - ERR_VFSMODULE_MKFILE_FMT
 - LBL_BACK
 - LBL_ICON
 - LBL_UNINSTALL
 - LBL_REGENERATE
 - LBL_WINDOWMANAGER
 - LBL_HOTKEY
 - LBL_HOTKEYS
 - LBL_MOUNTS
 - LBL_ID
 - LBL_REPOSITORY
 - LBL_PERSONAL
 - LBL_SYSTEM
 - LBL_STARTING
 - LBL_STORE
 - LBL_LOCALE
 - LBL_PACKAGE
 - LBL_INPUT
 - LBL_MISC
 - LBL_OTHER
 - LBL_USERS
 - LBL_FONTS

Created using this snippet.

UPDATES

  • 27. sep. 2016: Removed the it_IT strings which was implemented by @Kirkhammetz.
  • 29. sep. 2016: Removed the no_NO strings which was implemented by @andersevenrud.
  • 9. oct. 2016: New locales added by @andersevenrud.
  • 14. oct. 2016: Updated for #508.

from os.js.

simonecorsi avatar simonecorsi commented on May 18, 2024

Added the missing it_IT in #493
Fixed a small english typo in #494

from os.js.

andersevenrud avatar andersevenrud commented on May 18, 2024

@Kirkhammetz 👍

from os.js.

marktopper avatar marktopper commented on May 18, 2024

Just updated my comment above with the current missing language strings.

from os.js.

andersevenrud avatar andersevenrud commented on May 18, 2024

@marktopper Nice :) I just made a commit with the missing no_NO ones. Also includes the new stuff coming in next update.

For anyone else interested you can see everything starting from this line

'LBL_BACK': 'Tilbake',

from os.js.

andersevenrud avatar andersevenrud commented on May 18, 2024

@marktopper With the recent update, some more stuff has been added. If you feel like it you can update the lists :)

from os.js.

marktopper avatar marktopper commented on May 18, 2024

@andersevenrud, sorry for the waiting. Updated the list, nice work with the new implementations.

from os.js.

andersevenrud avatar andersevenrud commented on May 18, 2024

@marktopper No worries. I don't put up any expectations on stuff like this :)

from os.js.

marktopper avatar marktopper commented on May 18, 2024

Updated missing strings list for #508

from os.js.

andersevenrud avatar andersevenrud commented on May 18, 2024

--- Calling all translators ---

If anyone is up for translation of v3 stuff, please let me know :)

from os.js.

andersevenrud avatar andersevenrud commented on May 18, 2024

@JamesZEMOURI Sorry for the late response, but I'm really glad to hear that :)

I'm almost done setting everything up for translation, so when that is done I'll let you know!

from os.js.

andersevenrud avatar andersevenrud commented on May 18, 2024

@frju365 Your French translations have now been published across all packages that you made a PR. Thanks!

As a side-node, I've updated the "description" in the metadata files to be a bit more descriptive, so maybe you can look at that ?

Also, I've updated the manual about translating packages:

https://manual.os-js.org/v3/guide/translate/

from os.js.

andersevenrud avatar andersevenrud commented on May 18, 2024

@filips123 Nice :)

See:

from os.js.

andersevenrud avatar andersevenrud commented on May 18, 2024

@filips123 I can't seem to remove the milestone. A bug in the Github UI or something 😆

from os.js.

 avatar commented on May 18, 2024

How can I help translate?

from os.js.

RossComputerGuy avatar RossComputerGuy commented on May 18, 2024

Look at applications and modules that don't have translations for languages you know and then fork and add the translations and send a pull request.

from os.js.

andersevenrud avatar andersevenrud commented on May 18, 2024

@OlivieBright

See https://manual.os-js.org/v3/guide/translate/ for a guide on how translation works.

Then look at https://manual.os-js.org/v3/resource/official/ for a list of core modules and applications that can be translated (almost all of them have localization in them)

from os.js.

andersevenrud avatar andersevenrud commented on May 18, 2024

@filips123 Yeah. I'm planning on making a routine script that pulls all the diffs for locale changes and posts them here every two weeks or something.

from os.js.

andersevenrud avatar andersevenrud commented on May 18, 2024

@filips123 I've updated the top comment to contain a list of packages which have translations of their own. I'll see if I can't get this automated script running before newyears.

from os.js.

andersevenrud avatar andersevenrud commented on May 18, 2024

@frju365 This list does not currently has the application localization files -- these are only in the top comment at the moment. So you might wanna check those as well.

I'll update my script to locate these files as well, then share it on gist -- then set up an automated bot for it :)

from os.js.

filips123 avatar filips123 commented on May 18, 2024

Maybe it will be better to use some localisation platform (eg. Transifex, Crowding...) instead of just files that are edited. It will be easier to track for changes and untranslated strings

from os.js.

filips123 avatar filips123 commented on May 18, 2024

It looks like there is some error with automated translation updates. I translated metadata in some packages (osjs-freedesktop-sounds, osjs-gnome-icons, osjs-standard-dark-theme, osjs-standard-theme), but it says that sl_SI translation is missing.

from os.js.

andersevenrud avatar andersevenrud commented on May 18, 2024

from os.js.

filips123 avatar filips123 commented on May 18, 2024

What about some localisation platform? It would be easier to track for changes and untranslated strings.

from os.js.

andersevenrud avatar andersevenrud commented on May 18, 2024

from os.js.

filips123 avatar filips123 commented on May 18, 2024

There are some free options (with some limitations) available.
Both Transifex and and Crowdin have some free plan for open source projects. I know and use both but I don't know which would be the best. Transifex has organizations feature so it may be better for large projects.
There are also some other products available.

from os.js.

andersevenrud avatar andersevenrud commented on May 18, 2024

from os.js.

filips123 avatar filips123 commented on May 18, 2024

@BoFFire Yes, I just only said which I know best 😁. Weblate can also be good.

from os.js.

andersevenrud avatar andersevenrud commented on May 18, 2024

@BoFFire Weblate looks pretty nice (FOSS is a big one), but does not seem to have support for custom formats. However, it can read JSON files -- so maybe the .js should be converted to that instead. Not sure yet... Looking at some alternatives first.

from os.js.

BoFFire avatar BoFFire commented on May 18, 2024

Ping @nijel

from os.js.

andersevenrud avatar andersevenrud commented on May 18, 2024

@nijel Thanks. In this case my .js files basically just are flat JSON so I'll look into converting it.

@filips123 Yup. I was reading on i18next when I was browsing the Weblate documentation. Seems like it should be pretty trivial to make use of that :)

from os.js.

filips123 avatar filips123 commented on May 18, 2024

I think it would be OK for now but in the future it could be hard to implement this for all pluralisation rules for all languages CLDR.

Maybe you could find some lightweight i18next compatibile library or build your own 🤔

from os.js.

filips123 avatar filips123 commented on May 18, 2024

@andersevenrud For your interface, you should show progress bar for each language separately and table with missing keys should also be separate for each language. This is because translators probably won't care for other translations and their status. This could maybe be done with some tabs or tables.
There should also be link for each missing key to it's original in English (example). This would help translators to find where is that key and what should be it's value.

from os.js.

andersevenrud avatar andersevenrud commented on May 18, 2024

@filips123 Yup, good points.

from os.js.

filips123 avatar filips123 commented on May 18, 2024

@andersevenrud I saw that you updated UI for translations. It is OK but I have few suggestions.


Keys are displayed in table with columns "Key", "Translation". What is this "Translation" column. If i is for adding translations, it should probably not be there because translations should be added with editing files (editing from UI would probably be very hard to implement). Also, there sould be column "Original" with link to original translation in English or even direct value of it.


Keys are now seperated between languges. This is good, but it is still not so easy to navigate between them.
I think that page should be seperated into tabs (example of tabs).
First tab could be "Overview" and it could show overview of translations for all package. So for each package, there should be progress bar to show translations for whole package and additional progress bars for each package (like in current UI version). Keys should not be displayed.
For each language, there should be tab with language name. There should be progress bar for translation status of all packages. And then, the translation status should be displayed for each package (like in current UI version but only for one language). It should display package name, progress bar and missing keys with liks to original English value.


If possible, languages should be named like "Language name (language-code)". You could use some libraries that convert code to name if they aren't so heavy. Maybe you could also do your library or even don't display language name.


There are some libraries for localisation (also for language naming, pluralisation, numbering, displaying dates) but they are probably very heavy. Maybe you can look to some of them and "extract" only functions that are needed here.

from os.js.

andersevenrud avatar andersevenrud commented on May 18, 2024

@filips123

Keys are displayed in table with columns "Key", "Translation". What is this "Translation" column. If i is for adding translations, it should probably not be there because translations should be added with editing files (editing from UI would probably be very hard to implement).

Yes, the translation column was intended for entering a translation. The idea here was that it maybe could be possible to generate code you could copy/paste into the actual sources.

Also, there sould be column "Original" with link to original translation in English or even direct value of it.

The latter was what I was thinking, with some sort of indication with colors or something.

This is good, but it is still not so easy to navigate between them.

Haven't really though of this yet, but just using dropdowns might suffice ? [ package ] [ language ]

If possible, languages should be named like "Language name (language-code)".

Can just use some JSON dump found online.

There are some libraries for localisation (also for language naming, pluralisation, numbering, displaying dates) but they are probably very heavy. Maybe you can look to some of them and "extract" only functions that are needed here.

Yes, this has been discussed above. Dates is already covered, so the main part missing here is proper pluralization.

This can be solved in many ways, but using the suggestions I've made above there won't be any need tor an existing library (and you get more than pluralization to boot), but it's now no longer plain text. I guess this could be solved with some custom string format though...

As for which direction to go, I'm not 100% sure yet.

from os.js.

andersevenrud avatar andersevenrud commented on May 18, 2024

@filips123

If you're up for some UI prototyping and have some time to kill, feel free to have a look at the UI stuff :)

from os.js.

filips123 avatar filips123 commented on May 18, 2024

@andersevenrud I'm not familiar with HyperApp but I will try to do something :) Maybe I could also help you with designing backend for the interface. Maybe it could be just client side JavaScript so it could be hosted on GitHub pages.

from os.js.

andersevenrud avatar andersevenrud commented on May 18, 2024

@filips123 Doesn't have to be Hyperapp. I just went for that because it's easy to prototype stuff with it.

As for backend, it's not really required i think. We can just generate a JSON with all of the data and statistics from the repositories -- so some batch job or something.

from os.js.

andersevenrud avatar andersevenrud commented on May 18, 2024

@matheusfelipeog

Clone these repositories

What I meant was to fork these repositories on Github.

from os.js.

andersevenrud avatar andersevenrud commented on May 18, 2024

@yutyo Great! Thanks :)

from os.js.

yutyo avatar yutyo commented on May 18, 2024

@andersevenrud I see that some important parts are missing in all translations.
image

from os.js.

andersevenrud avatar andersevenrud commented on May 18, 2024

@yutyo Should be fixed now. I didn't see that you forgot a step that is noted in the manual. Published a new release of the client.

from os.js.

yutyo avatar yutyo commented on May 18, 2024

@yutyo Should be fixed now. I didn't see that you forgot a step that is noted in the manual. Published a new release of the client.

I have even cloned the repo and did setup from scratch, but its still the same. I guess there are more stuff to translate, cuz the same applies to all other translations.

from os.js.

andersevenrud avatar andersevenrud commented on May 18, 2024

@yutyo Not sure what you mean here ? It's not working for you after the latest update?

from os.js.

Malte0621 avatar Malte0621 commented on May 18, 2024

Ok so.. I translated the ones you mentioned, i dont know what other ones i should do.. But uhh.. I got so many pull requests now .__.

from os.js.

yutyo avatar yutyo commented on May 18, 2024

@yutyo Not sure what you mean here ? It's not working for you after the latest update?

It works as I have shown in the ss. As you can see, there are more translations to be done that you haven't stated in the thread, guessing from all translations missing parts.

from os.js.

andersevenrud avatar andersevenrud commented on May 18, 2024

@yutyo

As you can see, there are more translations to be done that you haven't stated in the thread, guessing from all translations missing parts.

To me it looks like you're missing the client locales there, which you already translated. And on my end it works prefectly fine.

I have even cloned the repo and did setup from scratch, but its still the same.

Maybe it's just because you're not using the upstream source code then.

from os.js.

yutyo avatar yutyo commented on May 18, 2024

Maybe it's just because you're not using the upstream source code then.

@andersevenrud oh alright. You are right. Sorry, lol.

from os.js.

lentas1 avatar lentas1 commented on May 18, 2024

link broken

from os.js.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.