diff options
Diffstat (limited to 'kstars')
-rw-r--r-- | kstars/CMakeL10n.txt | 3 | ||||
-rw-r--r-- | kstars/kstars/CMakeL10n.txt | 155 |
2 files changed, 158 insertions, 0 deletions
diff --git a/kstars/CMakeL10n.txt b/kstars/CMakeL10n.txt new file mode 100644 index 00000000..b585ce4a --- /dev/null +++ b/kstars/CMakeL10n.txt @@ -0,0 +1,3 @@ +##### create translation templates ############## + +tde_l10n_auto_add_subdirectories( ) diff --git a/kstars/kstars/CMakeL10n.txt b/kstars/kstars/CMakeL10n.txt new file mode 100644 index 00000000..b666e209 --- /dev/null +++ b/kstars/kstars/CMakeL10n.txt @@ -0,0 +1,155 @@ +##### prepare strings from data files ########### + +message( STATUS "Prepare to extract strings from kstars data files..." ) + +## extract constellations +file( READ "${CMAKE_CURRENT_SOURCE_DIR}/data/cnames.dat" _cnames ) +string( REGEX REPLACE " +(\n|\$)" "\\1" _cnames "${_cnames}" ) +string( REGEX REPLACE + "(^|\n)[0-9][^ ]* ([^\n]+)" + "\\1i18n(\"Constellation name (optional)\", \"\\2\");" + _cnames "${_cnames}" ) +file( WRITE "${CMAKE_CURRENT_SOURCE_DIR}/data/cnames.dat.tde_l10n" "${_cnames}" ) + +## extract cities, regions and countries +file( READ "${CMAKE_CURRENT_SOURCE_DIR}/data/Cities.dat" _cities ) +string( REGEX REPLACE "(^|\n)([^:]*): *([^:]*): *([^:]*):[^\n]*" "\\1\\2:\\3:\\4:" _cities "${_cities}" ) +string( REGEX REPLACE " +:" ":" _cities "${_cities}" ) +string( REGEX REPLACE + "([^:]+):([^:]*):([^:]*):(\n|\$)" + "i18n(\"City name (optional, probably does not need a translation)\", \"\\1\"):\\2:\\3:\\4" + _cities "${_cities}" ) +string( REGEX REPLACE + "([^:]*):([^:]+):([^:]*):(\n|\$)" + "\\1:i18n(\"Region/state name (optional, rarely needs a translation)\", \"\\2\"):\\3:\\4" + _cities "${_cities}" ) +string( REGEX REPLACE + "([^:]*):([^:]*):([^:]+):(\n|\$)" + "\\1:\\2:i18n(\"Country name (optional, but should be translated)\", \"\\3\"):\\4" + _cities "${_cities}" ) +string( REPLACE ":" ";" _cities "${_cities}" ) +file( WRITE "${CMAKE_CURRENT_SOURCE_DIR}/data/Cities.dat.tde_l10n" "${_cities}" ) + +## extract image/info menu items +file( READ "${CMAKE_CURRENT_SOURCE_DIR}/data/image_url.dat" _image_url ) +string( REGEX REPLACE + "([^:\n]*):([^:\n]+):http[^\n]*\n" + "i18n(\"Image/info menu item (should be translated)\", \"\\2\");\n" + _image_url "${_image_url}" ) +string( REGEX REPLACE "(^|\n)#" "\\1//" _image_url "${_image_url}" ) +file( WRITE "${CMAKE_CURRENT_SOURCE_DIR}/data/image_url.dat.tde_l10n" "${_image_url}" ) + +file( READ "${CMAKE_CURRENT_SOURCE_DIR}/data/info_url.dat" _info_url ) +string( REGEX REPLACE + "([^:\n]*):([^:\n]+):http[^\n]*\n" + "i18n(\"Image/info menu item (should be translated)\", \"\\2\");\n" + _info_url "${_info_url}" ) +string( REGEX REPLACE "(^|\n)#" "\\1//" _info_url "${_info_url}" ) +file( WRITE "${CMAKE_CURRENT_SOURCE_DIR}/data/info_url.dat.tde_l10n" "${_info_url}" ) + +## star names : some might be different in other languages, +## or they might have to be adapted to non-Latin alphabets +file( GLOB_RECURSE _hip_files + RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_CURRENT_SOURCE_DIR}/data/hip*.dat +) +list( SORT _hip_files ) +unset( _hip_files_l10n ) +foreach( _hip_file ${_hip_files} ) + # read file + file( READ "${CMAKE_CURRENT_SOURCE_DIR}/${_hip_file}" _hip_data ) + string( REGEX REPLACE "[^\n]" "" _hip_len ${_hip_data} ) + string( LENGTH "+${_hip_len}" _hip_len ) + + # process lines + set( _hip_pos 0 ) + unset( _hip_l10n ) + while( _hip_pos LESS ${_hip_len} ) + # pick line + string( REGEX REPLACE "^([^\n]*)\n(.*)" "\\1" _hip_line "${_hip_data}" ) + string( REGEX REPLACE "^([^\n]*)\n(.*)" "\\2" _hip_data "${_hip_data}" ) + math( EXPR _hip_pos "${_hip_pos}+1" ) + + string( LENGTH "${_hip_line}" _hip_line_len ) + if( _hip_line_len LESS 72 OR "${_hip_line}" MATCHES "^#" ) + set( _hip_line "" ) + else( ) + string( SUBSTRING "${_hip_line}" 72 -1 _hip_line ) + string( REGEX MATCH "^([^:]+)" _hip_line "${_hip_line}" ) + string( STRIP "${_hip_line}" _hip_line ) + if( NOT "${_hip_line}" STREQUAL "" ) + set( _hip_line "i18n(\"star name\", \"${_hip_line}\");" ) + endif( ) + endif( ) + set( _hip_l10n "${_hip_l10n}${_hip_line}\n" ) + endwhile( ) + + # write file + file( WRITE "${CMAKE_CURRENT_SOURCE_DIR}/${_hip_file}.tde_l10n" "${_hip_l10n}" ) + list( APPEND _hip_files_l10n "${_hip_file}.tde_l10n" ) +endforeach( ) + +## extract deep-sky object names +file( GLOB_RECURSE _ngcic_files + RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_CURRENT_SOURCE_DIR}/data/ngcic*.dat +) +list( SORT _ngcic_files ) +unset( _ngcic_files_l10n ) +foreach( _ngcic_file ${_ngcic_files} ) + # read file + file( READ "${CMAKE_CURRENT_SOURCE_DIR}/${_ngcic_file}" _ngcic_data ) + string( REGEX REPLACE "[^\n]" "" _ngcic_len ${_ngcic_data} ) + string( LENGTH "+${_ngcic_len}" _ngcic_len ) + + # process lines + set( _ngcic_pos 0 ) + unset( _ngcic_l10n ) + while( _ngcic_pos LESS ${_ngcic_len} ) + # pick line + string( REGEX REPLACE "^([^\n]*)\n(.*)" "\\1" _ngcic_line "${_ngcic_data}" ) + string( REGEX REPLACE "^([^\n]*)\n(.*)" "\\2" _ngcic_data "${_ngcic_data}" ) + math( EXPR _ngcic_pos "${_ngcic_pos}+1" ) + + string( LENGTH "${_ngcic_line}" _ngcic_line_len ) + if( _ngcic_line_len LESS 76 OR "${_ngcic_line}" MATCHES "^#" ) + set( _ngcic_line "" ) + else( ) + string( SUBSTRING "${_ngcic_line}" 76 -1 _ngcic_line ) + string( STRIP "${_ngcic_line}" _ngcic_line ) + if( NOT "${_ngcic_line}" STREQUAL "" ) + set( _ngcic_line "i18n(\"object name (optional)\", \"${_ngcic_line}\");" ) + endif( ) + endif( ) + set( _ngcic_l10n "${_ngcic_l10n}${_ngcic_line}\n" ) + endwhile( ) + + # write file + file( WRITE "${CMAKE_CURRENT_SOURCE_DIR}/${_ngcic_file}.tde_l10n" "${_ngcic_l10n}" ) + list( APPEND _ngcic_files_l10n "${_ngcic_file}.tde_l10n" ) +endforeach( ) + +## extract strings from file containing advanced URLs: +file( READ "${CMAKE_CURRENT_SOURCE_DIR}/data/advinterface.dat" _kslabel ) +string( REGEX REPLACE + "\\[KSLABEL\\]([^\n]*)(\n|\$)" + "i18n(\"Advanced URLs: description or category\", \"\\1\");\\2" + _kslabel "${_kslabel}" ) +file( WRITE "${CMAKE_CURRENT_SOURCE_DIR}/data/advinterface.dat.tde_l10n" "${_kslabel}" ) + + +##### create translation templates ############## + +tde_l10n_create_template( + CATALOG "kstars" + SOURCES + "." + "data/tips" + "data/cnames.dat.tde_l10n" + "data/Cities.dat.tde_l10n" + "data/image_url.dat.tde_l10n" + "data/info_url.dat.tde_l10n" + ${_hip_files_l10n} + ${_ngcic_files_l10n} + "data/advinterface.dat.tde_l10n" +) |