Skip to content
Snippets Groups Projects
  • 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