Warning, /education/marble/data/lang/README is written in an unsupported language. File is not indexed.
0001 Handling translation catalogs for app bundles 0002 ============================================= 0003 0004 Usage 0005 ----- 0006 A package build is done as usual, just with 2 extra steps. 0007 0008 # Provide marble sources, e.g. working copy of repo or tarball untarred 0009 [...] 0010 0011 # EXTRA STEP: Add translation sources to the sources (here for stable): 0012 cd <toplevel_sources> 0013 data/lang/download-pos.sh stable 0014 0015 # Configure build, run cmake as usual: 0016 cd <toplevel_build> 0017 cmake [...] 0018 0019 # Build as usual 0020 make 0021 0022 # EXTRA STEP: Build translations for bundle package optionally 0023 make bundle_translations 0024 0025 # Install as usual 0026 # If bundle_translations was called before, this will also install the qm files 0027 make install 0028 0029 # Package as usual 0030 [...] 0031 0032 0033 During development, if removing or adding a translation source file after 0034 cmake has been run already, the buildsystem needs to be first updated 0035 to pick up the removed/added files: 0036 0037 make rebuild_cache 0038 0039 Next, or if one of the existing translation source files has been updated, 0040 the translations need to be explicitly build again: 0041 0042 make bundle_translations 0043 0044 0045 Challenge 0046 --------- 0047 Translation catalogs are not part of the Marble source repository, instead 0048 are in a different repository. 0049 So on packaging time the catalogs need to be added to the working copy, so 0050 they can be processed as needed and become part of the package product. 0051 0052 The usual KDE source packaging scripts are fetching all po files belonging to 0053 the repo and are storing them in the toplevel dir in a subfolder po/$lang/*.po. 0054 Additionally either the buildsystem has some if-po/-exists-process-and-install-po-files 0055 or the packaging script will inject such logic into the buildsystem. 0056 0057 When creating binary packages, this is often done directly from a checkout of the 0058 sources and not from the released source tarball. So the step of fetching all po 0059 files has to be done here as well as making sure the processing and installation is done. 0060 0061 Not all products are build for all platforms. So e.g. for Android only Marble Maps 0062 will be created (separate packaging done for Behaim app, ignored for now). Right now 0063 the apps only or also released as bundles (Maps, Behaim, MarbleQt) or the lib only need 0064 the one single marble_qt catalog. The other (ki18n) catalogs are only used on platforms 0065 where binary packaging is done by the distributions and also unbundled. 0066 0067 0068 So supporting translations with binary packaging needs to work independently: 0069 * separate script to download po files, in separate folder: 0070 download-pos.sh 0071 * separate target name for creating the qm files: 0072 bundle_translations