I have been given the task of internationalizing a large client-server application. The remit is that I make the app 'World Ready' and then the compiled application and resources gets passed over to colleagues in another country for translation and release to their customers. There will be several countries and therefore several seperate translations.
The key thing here is that I want a simple two step release process:
Step 1: I compile and release a 'World Ready' application to my colleagues in the various coutries
Step 2: They do the localization of resources and then release to their customers
I don't want to add the extra steps of Make App World Ready -> Send files off for translation -> Wait weeks for the translations to come back -> Compile into App -> Release App.
I have been looking at .NET Globalization and the use of resx file. From what I have seen the resx file gets compiled into the application and therefore can not be changed once compiled. Even satelite assemblies do not seem editible. And even if I am wrong on that point, how would changes to the satelite assemblies be reflected back into the resx files in my project?
So now for the question. Given that I just want to compile the app first and let the translations be handled afterwards, are resx files the right way to go or should I abandon them and write a bespoke database driven solution that can be easily edited after the app has been compiled?
Hope that all makes sense. Look forward to your thoughts.
Yes, resx files are the best solution.
For translation of the resources you should look at a localization tool, for instance Passolo. It does either
We are translating assemblies, because this allows to localize the gui layout as well. To allow an external tool to open a gui editor, it needs the code and this is in the assembly.
If you only focus on test translation, translation of resx is probably simpler to handle.
Such an external tool provides this important functionalities: