Skip to content
Snippets Groups Projects
Select Git revision
  • a0596e113fb2a8bf23d173ca12fc38f2e717ae74
  • master default protected
  • release/202005
  • release/202001
  • release/201912
  • release/windows-test/201910
  • release/201908
  • release/201906
  • release/201905
  • release/201904
  • release/201903
  • release/201902
  • release/201901
  • release/201812
  • release/201811
  • release/201808
  • releases/beta1
  • packaging
  • releases/alpha
  • 1.0.0
  • 0.2.0
  • 0.1.0
22 results

generate-string.sh

Blame
    • Alexandre Lision's avatar
      922380d1
      i18n: integrate translations to packaging · 922380d1
      Alexandre Lision authored and Guillaume Roguez's avatar Guillaume Roguez committed
      This commit adds internationalization support
      We interface with Transifex as our web translation platform.
      
      Two new scripts:
      - generate-strings.sh: generates source files in English.
      We need one source file by UI file
      (Apple's law) + one Localizable.strings for strings in code.
      
      - update-translations.sh: pulls translations completes at 75% at least
      from transifex, and cleanup the files (UTF-16LE to UTF-8 encoding,
      and remove first line with corrupted char)
      
      Issue: #80347
      Change-Id: Iefd297e424aaacefe6e867192e10dabd21bfb8d2
      922380d1
      History
      i18n: integrate translations to packaging
      Alexandre Lision authored and Guillaume Roguez's avatar Guillaume Roguez committed
      This commit adds internationalization support
      We interface with Transifex as our web translation platform.
      
      Two new scripts:
      - generate-strings.sh: generates source files in English.
      We need one source file by UI file
      (Apple's law) + one Localizable.strings for strings in code.
      
      - update-translations.sh: pulls translations completes at 75% at least
      from transifex, and cleanup the files (UTF-16LE to UTF-8 encoding,
      and remove first line with corrupted char)
      
      Issue: #80347
      Change-Id: Iefd297e424aaacefe6e867192e10dabd21bfb8d2
    Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    generate-string.sh 1.77 KiB
    #!/bin/bash
    
    #  Copyright (C) 2015 Savoir-faire Linux Inc.
    #  Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
    #
    #  This program is free software; you can redistribute it and/or modify
    #  it under the terms of the GNU General Public License as published by
    #  the Free Software Foundation; either version 3 of the License, or
    #  (at your option) any later version.
    #
    #  This program is distributed in the hope that it will be useful,
    #  but WITHOUT ANY WARRANTY; without even the implied warranty of
    #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    #  GNU General Public License for more details.
    #
    #  You should have received a copy of the GNU General Public License
    #  along with this program; if not, write to the Free Software
    #  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA.
    
    # This scripts generates .strings files for Base language (e.g: english)
    # These files are encoded in UTF-16LE which is interpreted as binary in Git,
    # and therefore not visible when using 'git diff'
    
    echo "Regenerating Localizable.strings..."
    find src -name '*.mm' | xargs genstrings -o ui/Base.lproj
    iconv -f UTF-16LE -t UTF-8 ui/Base.lproj/Localizable.strings > ui/Base.lproj/Localizable.strings.8
    sed '1s/.*//' ui/Base.lproj/Localizable.strings.8 > ui/Base.lproj/Localizable.strings
    rm ui/Base.lproj/Localizable.strings.8
    
    # generate strings from XIBs
    
    for file in `find ui -name '*.xib' -and -path '*/Base.lproj/*'`; do
        strings_file=`echo $file | sed s/\.xib/.strings/`
        echo "Regenerating $strings_file..."
        ibtool --generate-strings-file $strings_file $file
    
        # Change file encoding
        iconv -f UTF-16LE -t UTF-8 $strings_file > $strings_file.8
    
        # Empty first line
        sed '1s/.*//' $strings_file.8 > $strings_file
        rm $strings_file.8
    done