diff --git a/doxygen/images/translate-glade.png b/doxygen/images/translate-glade.png new file mode 100644 index 0000000..a25e801 Binary files /dev/null and b/doxygen/images/translate-glade.png differ diff --git a/doxygen/translation.dox b/doxygen/translation.dox new file mode 100644 index 0000000..a4d5ab4 --- /dev/null +++ b/doxygen/translation.dox @@ -0,0 +1,53 @@ +/** + +@page translation Translations / Internationalization + +@section lang-available Available Languages + +The development, documentation and default application language of gds-render is English. +Translations of GUI and console output exist for the following locales/languages + +- de German (Deutsch) +- ja Japanese (日本語) (Work in progess) + +On how to add new languages, see @ref lang-add + +@section lang-internals Internals +This progamm uses gettext for translations. + +@subsection lang-coding Make Strings Translatable in Code +Only strings, that are marked as translatable are actually available for translation and shown in the user's language. +All other text is displayed as written in the source files. + +@subsubsection lang-add-glade Make GUI Elements in Glade Files Translatable +Text inside Glade's GUI files can be made translatable by checking the *translatable* option for the specific text property. +The following image shows the label property of a button. Notice the checked Translatable option. +@image html translate-glade.png +@image latex translate-glade.png + +@subsubsection lang-add-c Make C Strings Translatable +In order to make strings in C code translatable, the following header has to be included: +@code +#inlcude +@endcode +This header provides a few macros useful for translation. The most important one is the function-like macro +@code +_("Text here") +@endcode +which is just a underline character. +You can use this marco to encapsulate all static strings that shall be translated. The whole expression is still usable like any other string (except for compile time concatenation, like: "This is foo" " and this is bar") + +Example: +@code +printf(_("The value of foo is %d\n"), foo); +@endcode + +Text that must not be translated can be encapsulated inside a N_ macro like +@code +N_("This has to stay in English") +@endcode +The N_ macro is basically an empty macro and just for visualization. + +@subsection lang-add Add a New Language + +*/