[109] | 1 | #!/bin/sh
|
---|
| 2 | #
|
---|
| 3 | # TranslateNib.sh
|
---|
| 4 | #
|
---|
| 5 | # This tools helps creating localized nib files,
|
---|
| 6 | # using nibtool.
|
---|
| 7 | #
|
---|
| 8 | # Copyright Stephane Corthesy 2001-2003, stephane@sente.ch
|
---|
| 9 | #
|
---|
| 10 | # Mar 7 2002: v1, initial public release
|
---|
| 11 | # Jul 12 2002: v2, corrected CVS problem
|
---|
| 12 | # Jan 3 2003: v3, adapted for Dec 2002 Dev Tools; added Subversion support
|
---|
| 13 | #
|
---|
| 14 |
|
---|
| 15 | usage ( ) {
|
---|
| 16 | echo "Usage: `basename $0` operation language file"
|
---|
| 17 | echo " operation must be 'start' or 'end'"
|
---|
| 18 | echo " language must be English, French, Spanish, ..."
|
---|
| 19 | echo " file is the original nib file"
|
---|
| 20 | echo " (Output directory must be writable)"
|
---|
| 21 | }
|
---|
| 22 |
|
---|
| 23 | if [ $# -ne 3 ] ; then \
|
---|
| 24 | usage ; \
|
---|
| 25 | exit 1
|
---|
| 26 | fi
|
---|
| 27 |
|
---|
| 28 | operation="$1"
|
---|
| 29 | editor="/Applications/TextEdit.app"
|
---|
| 30 |
|
---|
| 31 | if [ "$operation" != "start" -a "$operation" != "end" ] ; then \
|
---|
| 32 | usage ; \
|
---|
| 33 | exit 1
|
---|
| 34 | fi
|
---|
| 35 |
|
---|
| 36 | # Let's remove .nib/ suffix, if any
|
---|
| 37 | filename=`basename "$3" .nib`
|
---|
| 38 | inputDir=`dirname "$3"`
|
---|
| 39 | inputFile="$inputDir/$filename.nib"
|
---|
| 40 |
|
---|
| 41 | # Now we check that source nib exists
|
---|
| 42 | if [ ! -d "$inputFile" ] ; then \
|
---|
| 43 | echo "No such file "$inputFile ; \
|
---|
| 44 | exit 1
|
---|
| 45 | fi
|
---|
| 46 |
|
---|
| 47 | language="$2"
|
---|
| 48 | outputDir="$inputDir/../$language.lproj"
|
---|
| 49 | tempStringFile="$outputDir/___$filename.strings"
|
---|
| 50 | outputFile="$outputDir/$filename.nib"
|
---|
| 51 |
|
---|
| 52 | if [ ! -d "$outputDir" ] ; then \
|
---|
| 53 | mkdir "$outputDir"
|
---|
| 54 | fi
|
---|
| 55 |
|
---|
| 56 | # If user already translated nib in the past, we update it:
|
---|
| 57 | # We use old translation strings + layout, merged with
|
---|
| 58 | # new strings+elements
|
---|
| 59 |
|
---|
| 60 | if [ "$operation" = "start" ] ; then {
|
---|
| 61 | if [ -d "$outputFile" ] ; then
|
---|
| 62 | rm -rf "$tempStringFile" ; \
|
---|
| 63 | nibtool --previous "$outputFile" \
|
---|
| 64 | --localizable-strings \
|
---|
| 65 | --incremental "$outputFile" "$inputFile"\
|
---|
| 66 | > "$tempStringFile" ; \
|
---|
| 67 | open "$inputFile"
|
---|
| 68 | else
|
---|
| 69 | rm -rf "$tempStringFile" ; \
|
---|
| 70 | nibtool --localizable-strings "$inputFile" \
|
---|
| 71 | > "$tempStringFile" ; \
|
---|
| 72 | open "$inputFile"
|
---|
| 73 | fi
|
---|
| 74 | open -a "$editor" "$tempStringFile"
|
---|
| 75 | } else {
|
---|
| 76 | # Verify that .strings file format is correct
|
---|
| 77 | pl < "$tempStringFile" > /dev/null
|
---|
| 78 | if [ -d "$outputFile" ] ; then {
|
---|
| 79 | # Let's preserve CVS/Subversion information, as nibtool doesn't...
|
---|
| 80 | if [ -d "$outputFile/CVS" ] ; then
|
---|
| 81 | cp -pR "$outputFile/CVS" "$outputFile/../CVS.tmp"
|
---|
| 82 | fi
|
---|
| 83 | if [ -d "$outputFile/.svn" ] ; then
|
---|
| 84 | cp -pR "$outputFile/.svn" "$outputFile/../.svn.tmp"
|
---|
| 85 | fi
|
---|
| 86 | nibtool --dictionary "$tempStringFile" \
|
---|
| 87 | --Write "$outputFile" \
|
---|
| 88 | --incremental "$outputFile" \
|
---|
| 89 | "$inputFile" ; \
|
---|
| 90 | if [ -d "$outputFile/../CVS.tmp" ] ; then
|
---|
| 91 | mv "$outputFile/../CVS.tmp" "$outputFile/CVS"
|
---|
| 92 | fi
|
---|
| 93 | if [ -d "$outputFile/../.svn.tmp" ] ; then
|
---|
| 94 | mv "$outputFile/../.svn.tmp" "$outputFile/.svn"
|
---|
| 95 | fi
|
---|
| 96 | } else
|
---|
| 97 | nibtool --dictionary "$tempStringFile" \
|
---|
| 98 | --write "$outputFile" \
|
---|
| 99 | "$inputFile"
|
---|
| 100 | fi
|
---|
| 101 | rm -rf "$tempStringFile"
|
---|
| 102 | open "$outputFile"
|
---|
| 103 | } fi
|
---|
| 104 |
|
---|
| 105 | # If file has only 2 bytes, it is empty
|
---|
| 106 | #if [ -z `cut -b "3,4" < "$tempStringFile"` ] ; then \
|
---|
| 107 | # echo "Nothing to translate"
|
---|
| 108 | # rm -rf "$tempStringFile" ; \
|
---|
| 109 | #else
|
---|
| 110 | # open "$inputFile"
|
---|
| 111 | # open -a "$editor" "$tempStringFile"
|
---|
| 112 | #fi
|
---|
| 113 |
|
---|
| 114 | exit 0
|
---|