4 ms·
Thanks for all the feedback! The real issue that is not handled by several suggested alternatives is how to actually manage the translation process. resx files
by svantex 2y ago
Thanks for all the feedback! The real issue that is not handled by several suggested alternatives is how to actually manage the translation process. resx files as such work fine - but... the problem is getting them from non-technical translators, possibly with their own tool preferences, or volunteers not having any tools or particular tech skills at all. That's what I'm trying to find a better way for, while still not breaking .NET practices.
- tuwtuwtuwtuw 2y agoConsidering resx has been supported for decades, why not just convert the resx into whatever the translator team wants? Reading/writing resx is 10 lines of code or something. I just dump ours into an excelsheet with one column per language, because for whatever reason the translators wants it in excel like that. Then when they are done I convert it back to resx files.
- svantex 2y agoIn my case there's no "translator team" as such. It's a mix of volunteers, part-time paid translators, colleagues etc. I've never had a translator team, it's always various ad-hoc situations and networks of people. And I don't want to write and maintain conversion software and such workflows.
- ComputerGuru 2y agoYou can see my top-level comment for more info, but we wrote a very quick and dirty UI to manage the XML localizations that allows "forking" a language into a new localization and showing outdated or missing localization strings. I don't think a single person that contributed a translation was actually a developer, but I've had no complaints about it being difficult to follow in the going-on-twenty-years since its release! https://neosmart.net/forums/threads/translations-to-other-languages.696/ https://neosmart.net/forums/threads/translations-to-other-la...
- svantex 2y agoNice - but very special purpose from what I can gather. I've done a few custom solutions myself over the years, but that's exactly what I'm trying to get away from. I want to write code that does cool stuff for the users of my apps, not code that does cool stuff to make translations possible - someone else can do that cool stuff ;-) where I'm the "user".
- ComputerGuru 2y agoThanks. Not actually really special purpose. One-click import from any SWF project, though no easy WPF/XAML sdk for lack of motivation. The GUI is fully app agnostic.
- svantex 2y agoOk, maybe I was to quick to judge, I didn't spend enough time studying it. I looked at some screen shots, and it seemed like the translation tool knew things about the app, but I was apparently mistaken. Sorry.
- ComputerGuru 2y agoNo problem. The tool loads a directory of xml files; each file is rendered as a tab in the translation GUI. The framework exports the strings from each SWF form as a separate xml file into a directory that matches the native locale’s identifier (eg en-US) and gives it a friendly name based off the form’s title/caption and/or file name. So the end result is a naturally user-friendly approach to translation instead of having all the apps strings dumped together into one PO file as is the norm, and translators can reference the app they are translating’s UI as they methodically translate a component at a time.
- svantex 2y agoNice!
- unsignedint 2y agoI'm not sure if I'm missing something here, but many translation solutions support ResX files out of the box. For example, I use memoQ, which has built-in support for ResX files. Additionally, open-source solutions like OmegaT can handle ResX files as well.
- WorldMaker 2y agoThe author's choice of Loco also claims to directly support ResX: https://localise.biz/help/formats/importing/xml#resx https://localise.biz/help/formats/importing/xml#resx
- svantex 2y agoYes, resx support is finally becoming available in more solutions, but it's still not always a first class citizen. But perhaps that's the long-term solution, wait for resx to take over. Although it still doesn't support plural forms (then again my current setup doesn't either...).
- WorldMaker 2y agogettext/PO is just as deficient at modern plural forms support as ResX, out of the box. The only format that I'm aware of that is specifically built to include it as first-class is Mozilla's Fluent. The same workarounds generally apply to ResX as to PO: create a number of separate strings and do a bit of math up front to choose the right one, or use a formatter on top of PO/ResX that supports something like ICU MessageFormat. I found an attempt at doing Fluent in .NET: https://github.com/blushingpenguin/Fluent.Net/ https://github.com/blushingpenguin/Fluent.Net/ I also found at least one library for supporting ICU MessageFormat in .NET: https://github.com/jeffijoe/messageformat.net https://github.com/jeffijoe/messageformat.net
- svantex 2y agoInteresting, didn't know about those. Will check out. Thanks!