Thread overview
Localizing a D application - best practices?
Sep 28, 2014
Cliff
Sep 29, 2014
Chris
Sep 29, 2014
Freddy
September 28, 2014
Coming from the C# world, all of localization we did was based on defining string resource files (XML-formatted source files which were translated into C# classes with named-string accessors by the build process) that would get included in the final application.  For log messages, exception messages (because unhandled exceptions could make it to the user in the case of a bug) and format strings used for the above we would create a string table entry and this file would eventually get localized by the appropriate team.

Is there a recommended pattern for applications in D that wish to do localization?

Thanks.
September 29, 2014
On Sunday, 28 September 2014 at 21:29:21 UTC, Cliff wrote:
> Coming from the C# world, all of localization we did was based on defining string resource files (XML-formatted source files which were translated into C# classes with named-string accessors by the build process) that would get included in the final application.  For log messages, exception messages (because unhandled exceptions could make it to the user in the case of a bug) and format strings used for the above we would create a string table entry and this file would eventually get localized by the appropriate team.
>
> Is there a recommended pattern for applications in D that wish to do localization?
>
> Thanks.

I don't know. But JSON is very popular in the D community. dub, the package manager uses it for configuration files, I use JSON for the same purpose in my applications. Although the present std.json is not up to current D standards (still?), it is perfectly usable. Alternatively you can have a look at vibe.d's implementation (http://vibed.org/api/vibe.data.json/) which I use in vibe.d apps.

I do not recommend XML, not only because it may be overkill for localization, but because the std.xml module should have been put down a long time ago. If you do want to use XML, however, you may have a look at Adam D. Ruppe's dom.d[1][2].

In the D community JSON is usually preferred to XML.

[1] https://github.com/adamdruppe/HTML-DOM
[2] https://github.com/adamdruppe/arsd
September 29, 2014
On Sunday, 28 September 2014 at 21:29:21 UTC, Cliff wrote:
> Coming from the C# world, all of localization we did was based on defining string resource files (XML-formatted source files which were translated into C# classes with named-string accessors by the build process) that would get included in the final application.  For log messages, exception messages (because unhandled exceptions could make it to the user in the case of a bug) and format strings used for the above we would create a string table entry and this file would eventually get localized by the appropriate team.
>
> Is there a recommended pattern for applications in D that wish to do localization?
>
> Thanks.

I personally recommend you do this
---
void main(){
	string name=import("mylang");
}
---
and add a folder with mylang with -J .
eg:
  -Jenglish
  -Jspanish