Language Packs #6039
Replies: 19 comments 50 replies
-
After many years keeping the spanish language pack up-to-the-minute for no apparent reason, I would attest that a language pack takes a very long time to reach a state that could be considered "done". So should be treated as something that is never finished/subject to constant change and not a static plugin. |
Beta Was this translation helpful? Give feedback.
-
Thanks @torvista There will be challenges, especially around situations where the automation produces incorrect translations. This especially for I'm still working on some ideas to help with this, and will post more here about that. |
Beta Was this translation helpful? Give feedback.
-
At some point I'll try the automation on Spanish and hopefully get your feedback on how bad it is :) |
Beta Was this translation helpful? Give feedback.
-
One thing I'm looking at is how contributors can create a language pack using the laravel app. Currently this means that they have to install code locally, create a token for the google translate API and have a github token to allow access to a repository. This is a bit onerous, so the idea may be to add a UI interface to a hosted version of the laravel app |
Beta Was this translation helpful? Give feedback.
-
As a long time translator of ZC and other software, for small Nordic languages; While the idea is praiseworthy, I don't see it as much realistic that Google Translate (or any other AI translator) will produce anything useful (as of today) for most of the languages, except for maybe the top 5 western languages (Spanish, French etc.) - of ap. 7000 languages in the world (195 countries). Including or providing bad translations would be equally bad as non translations, especially for the stores as people would avoid them, as they looks fishy with bad translations... Using resources on getting t.ex. Crowdin up running would probably have been better, building an active translator community, you can also integrate it with Google Translate and others to get proposals and automations. The reason for most languages being outdated is simply because it's a huge manual task migrating (from define to array) and keeping the translations up to date. It requires old fashioned tools like notepad and diffs, side by side comparisons - and it's mostly not language team friendly and thus becomes a one man task. Just my 5 cents. ;) |
Beta Was this translation helpful? Give feedback.
-
Yes, good point. Much AI is geared around a few very limited scopes.
Yes. Unfortunately there are a lot of necessary manual tasks involved in keeping things in sync across upgrades. |
Beta Was this translation helpful? Give feedback.
-
This is definitely the easiest way to crowd-source contributed content. Incorporating that content back into core is quite challenging, and that's mostly what stalled that (still open) project. |
Beta Was this translation helpful? Give feedback.
-
As always, I wonder why not start from an endpoint and work out how to get there. New language packs could be AI-generated as a starting point: it's easy for users to modify but not create. My imagining of an ideal would be the admin user doing a one-click install (download) of a translation (which would have an indication of its readiness/how much human-checked it is). I see two modification mechanisms necessary:
Seems a huge amount of work...how important is this in the priorities/roadmap for Zen Cart??? |
Beta Was this translation helpful? Give feedback.
-
@syntaxerror Thanks for the update and explanations around Crowdin. However I think we have already run into an issue. As some languages have been auto translated, we have now hit a limit on the number of translation words we have. I think the free limit is 60,000 Email from crowdin is
|
Beta Was this translation helpful? Give feedback.
-
I might try reaching out to crowdin to see if they can offer some support for open source, given they have this |
Beta Was this translation helpful? Give feedback.
-
Just got an email to say that they have, and the error banner that suggested the account would be disabled has been removed |
Beta Was this translation helpful? Give feedback.
-
Crowdin |
Beta Was this translation helpful? Give feedback.
-
Given it's relatively easy for people to extract/download their own language packs from Crowdin after (whatever amount of) translating/proofreading is done, then I see no reason not to make this the preferred approach, and remove the "testing" text from the description. A few things probably need to be sorted out first ... |
Beta Was this translation helpful? Give feedback.
-
@syntaxerror Would you be willing to write a blurb on CrowdIn for https://docs.zen-cart.com/dev/languages/creating_a_language_pack/ ? If you can submit a PR that would be great, but if not just pasting in some instructions would work too. Thanks for your contribution to Zen Cart! |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
So, I thought I'd just check this last addition to lang_users.php and find that in the few files I checked, every translation is truncated from the first accent onwards! I suppose this is a problem from the last import? |
Beta Was this translation helpful? Give feedback.
-
After having read the docs, I still have multiple issues with this Crowdin interface, which I'll split over posts. eg lang.orders_status_updates_admin.php has 12 strings. Interface shows repeated strings and hidden strings. |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
@syntaxerror are there things we can refine in terms of how things are mapped between source code and how crowdin handles both github commits and also manual imports of language packs? |
Beta Was this translation helpful? Give feedback.
-
UPDATE: THE ZEN CART CROWDIN PROJECT IS LOCATED AT: https://crowdin.zen-cart.com
... which links to https://crowdin.com/project/zen-cart
Most language packs available in https://www.zen-cart.com/downloads.php?do=cat&id=6 are seriously out of date and generally only support the old DEFINE type language files and not the new array type language files.
They are also generally not updated regularly, when we get new Zen Cart versions and new language strings are added.
To try and help with this, I have created a Laravel console application that automates translation using the Google translate API.
The repository is https://github.com/zencart/translate
The documentation is a bit light at the moment and I will be updating that shortly. You need to have tokens for Google Translate and Github.
While Google Translate does a good job, there are times that it fails and the code allows for adding overrides for specific translations.
The plan is to update the current Plugin manager code, so that translation packs can use the zc_plugins directory to manage translations.
Beta Was this translation helpful? Give feedback.
All reactions