-rw-r--r-- | development/translation/opie-lrelease/main.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/development/translation/opie-lrelease/main.cpp b/development/translation/opie-lrelease/main.cpp index 6008c4e..e5c1a0c 100644 --- a/development/translation/opie-lrelease/main.cpp +++ b/development/translation/opie-lrelease/main.cpp | |||
@@ -1,150 +1,153 @@ | |||
1 | /********************************************************************** | 1 | /********************************************************************** |
2 | ** Copyright (C) 2000 Trolltech AS. All rights reserved. | 2 | ** Copyright (C) 2000 Trolltech AS. All rights reserved. |
3 | ** | 3 | ** |
4 | ** This file is part of Qt Linguist. | 4 | ** This file is part of Qt Linguist. |
5 | ** | 5 | ** |
6 | ** This file may be distributed and/or modified under the terms of the | 6 | ** This file may be distributed and/or modified under the terms of the |
7 | ** GNU General Public License version 2 as published by the Free Software | 7 | ** GNU General Public License version 2 as published by the Free Software |
8 | ** Foundation and appearing in the file LICENSE.GPL included in the | 8 | ** Foundation and appearing in the file LICENSE.GPL included in the |
9 | ** packaging of this file. | 9 | ** packaging of this file. |
10 | ** | 10 | ** |
11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE | 11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE |
12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. | 12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. |
13 | ** | 13 | ** |
14 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. | 14 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. |
15 | ** | 15 | ** |
16 | ** Contact info@trolltech.com if any conditions of this licensing are | 16 | ** Contact info@trolltech.com if any conditions of this licensing are |
17 | ** not clear to you. | 17 | ** not clear to you. |
18 | ** | 18 | ** |
19 | **********************************************************************/ | 19 | **********************************************************************/ |
20 | 20 | ||
21 | #include <metatranslator.h> | 21 | #include <metatranslator.h> |
22 | #include <proparser.h> | 22 | #include <proparser.h> |
23 | #include <opie.h> | 23 | #include <opie.h> |
24 | 24 | ||
25 | #include <qfile.h> | 25 | #include <qfile.h> |
26 | #include <qregexp.h> | 26 | #include <qregexp.h> |
27 | #include <qstring.h> | 27 | #include <qstring.h> |
28 | #include <qstringlist.h> | 28 | #include <qstringlist.h> |
29 | #include <qtextstream.h> | 29 | #include <qtextstream.h> |
30 | 30 | ||
31 | #include <errno.h> | 31 | #include <errno.h> |
32 | 32 | ||
33 | typedef QValueList<MetaTranslatorMessage> TML; | 33 | typedef QValueList<MetaTranslatorMessage> TML; |
34 | 34 | ||
35 | static void printUsage() | 35 | static void printUsage() |
36 | { | 36 | { |
37 | fprintf( stderr, "Usage:\n" | 37 | fprintf( stderr, "Usage:\n" |
38 | " lrelease [options] project-file\n" | 38 | " lrelease [options] project-file\n" |
39 | " lrelease [options] ts-files\n" | 39 | " lrelease [options] ts-files\n" |
40 | "Options:\n" | 40 | "Options:\n" |
41 | " -opie OPIE dir overrides $OPIEDIR\n" | 41 | " -opie OPIE dir overrides $OPIEDIR\n" |
42 | " -help Display this information and exit\n" | 42 | " -help Display this information and exit\n" |
43 | " -verbose\n" | 43 | " -verbose\n" |
44 | " Explain what is being done\n" | 44 | " Explain what is being done\n" |
45 | " -version\n" | 45 | " -version\n" |
46 | " Display the version of lrelease and exit\n" ); | 46 | " Display the version of lrelease and exit\n" ); |
47 | } | 47 | } |
48 | static void releaseQmFile( const QString& tsFileName, bool verbose ) | 48 | static void releaseQmFile( const QString& tsFileName, bool verbose ) |
49 | { | 49 | { |
50 | MetaTranslator tor; | 50 | MetaTranslator tor; |
51 | QString qmFileName = tsFileName; | 51 | QString qmFileName = tsFileName; |
52 | qmFileName.replace( QRegExp("\\.ts$"), "" ); | 52 | qmFileName.replace( QRegExp("\\.ts$"), "" ); |
53 | qmFileName += ".qm"; | 53 | qmFileName += ".qm"; |
54 | 54 | ||
55 | if ( tor.load(tsFileName) ) { | 55 | if ( tor.load(tsFileName) ) { |
56 | if ( verbose ) | 56 | if ( verbose ) |
57 | fprintf( stderr, "Updating '%s'...\n", qmFileName.latin1() ); | 57 | fprintf( stderr, "Updating '%s'...\n", qmFileName.latin1() ); |
58 | if ( !tor.release(qmFileName, verbose) ) | 58 | if ( !tor.release(qmFileName, verbose) ) |
59 | fprintf( stderr, | 59 | fprintf( stderr, |
60 | "lrelease warning: For some reason, I cannot save '%s'\n", | 60 | "lrelease warning: For some reason, I cannot save '%s'\n", |
61 | qmFileName.latin1() ); | 61 | qmFileName.latin1() ); |
62 | } else { | 62 | } else { |
63 | fprintf( stderr, | 63 | fprintf( stderr, |
64 | "lrelease warning: For some reason, I cannot load '%s'\n", | 64 | "lrelease warning: For some reason, I cannot load '%s'\n", |
65 | tsFileName.latin1() ); | 65 | tsFileName.latin1() ); |
66 | } | 66 | } |
67 | } | 67 | } |
68 | static void metaQmFile( const QString &opiedir, | 68 | static void metaQmFile( const QString &opiedir, |
69 | const QStringList& lang, | 69 | const QStringList& lang, |
70 | const QString& basename, | 70 | const QString& basename, |
71 | bool isLib, bool verb ) { | 71 | bool isLib, bool verb ) { |
72 | QString target = basename + ".ts"; | 72 | QString target = basename + ".ts"; |
73 | if ( isLib ) target.prepend("lib"); | 73 | if ( isLib ) target.prepend("lib"); |
74 | 74 | ||
75 | for ( QStringList::ConstIterator it = lang.begin(); it != lang.end(); | 75 | for ( QStringList::ConstIterator it = lang.begin(); it != lang.end(); |
76 | ++it ) { | 76 | ++it ) { |
77 | QString fileName = opiedir + "/i18n/" + (*it) + "/" + target; | 77 | QString fileName = opiedir + "/i18n/" + (*it) + "/" + target; |
78 | qWarning("Target is %s", fileName.latin1() ); | 78 | qWarning("Target is %s", fileName.latin1() ); |
79 | releaseQmFile( fileName, verb ); | ||
79 | } | 80 | } |
80 | } | 81 | } |
81 | int main( int argc, char **argv ) | 82 | int main( int argc, char **argv ) |
82 | { | 83 | { |
83 | bool verbose = FALSE; | 84 | bool verbose = FALSE; |
84 | bool metTranslations = FALSE; | 85 | bool metTranslations = FALSE; |
85 | int numFiles = 0; | 86 | int numFiles = 0; |
86 | QString opiedir; | 87 | QString opiedir; |
87 | QStringList languageList = OPIE::self()->languageList( opiedir ); | 88 | QStringList languageList = OPIE::self()->languageList( opiedir ); |
88 | 89 | ||
89 | for ( int i = 1; i < argc; i++ ) { | 90 | for ( int i = 1; i < argc; i++ ) { |
90 | if ( qstrcmp(argv[i], "-help") == 0 ) { | 91 | if ( qstrcmp(argv[i], "-help") == 0 ) { |
91 | printUsage(); | 92 | printUsage(); |
92 | return 0; | 93 | return 0; |
93 | } else if ( qstrcmp(argv[i], "-verbose") == 0 ) { | 94 | } else if ( qstrcmp(argv[i], "-verbose") == 0 ) { |
94 | verbose = TRUE; | 95 | verbose = TRUE; |
95 | continue; | 96 | continue; |
96 | } else if ( qstrcmp(argv[i], "-version") == 0 ) { | 97 | } else if ( qstrcmp(argv[i], "-version") == 0 ) { |
97 | fprintf( stderr, "lrelease version %s\n", QT_VERSION_STR ); | 98 | fprintf( stderr, "lrelease version %s\n", QT_VERSION_STR ); |
98 | return 0; | 99 | return 0; |
99 | } else if ( qstrcmp(argv[i], "-opie") == 0 ) { | 100 | } else if ( qstrcmp(argv[i], "-opie") == 0 ) { |
100 | if ( i+1 < argc ) { | 101 | if ( i+1 < argc ) { |
101 | opiedir = argv[i+1]; | 102 | opiedir = argv[i+1]; |
102 | languageList = OPIE::self()->languageList(opiedir); | 103 | languageList = OPIE::self()->languageList(opiedir); |
103 | } | 104 | } |
104 | } | 105 | } |
105 | 106 | ||
106 | numFiles++; | 107 | numFiles++; |
107 | QFile f( argv[i] ); | 108 | QFile f( argv[i] ); |
108 | if ( !f.open(IO_ReadOnly) ) { | 109 | if ( !f.open(IO_ReadOnly) ) { |
109 | fprintf( stderr, | 110 | fprintf( stderr, |
110 | "lrelease error: Cannot open file '%s': %s\n", argv[i], | 111 | "lrelease error: Cannot open file '%s': %s\n", argv[i], |
111 | strerror(errno) ); | 112 | strerror(errno) ); |
112 | return 1; | 113 | return 1; |
113 | } | 114 | } |
114 | 115 | ||
115 | QTextStream t( &f ); | 116 | QTextStream t( &f ); |
116 | QString fullText = t.read(); | 117 | QString fullText = t.read(); |
117 | f.close(); | 118 | f.close(); |
118 | 119 | ||
119 | if ( fullText.find(QString("<!DOCTYPE TS>")) >= 0 ) { | 120 | if ( fullText.find(QString("<!DOCTYPE TS>")) >= 0 ) { |
120 | releaseQmFile( argv[i], verbose ); | 121 | releaseQmFile( argv[i], verbose ); |
121 | } else { | 122 | } else { |
122 | QString target; | 123 | QString target; |
123 | bool isLib = FALSE; | 124 | bool isLib = FALSE; |
124 | QMap<QString, QString> tagMap = proFileTagMap( fullText ); | 125 | QMap<QString, QString> tagMap = proFileTagMap( fullText ); |
125 | QMap<QString, QString>::Iterator it; | 126 | QMap<QString, QString>::Iterator it; |
126 | 127 | ||
127 | for ( it = tagMap.begin(); it != tagMap.end(); ++it ) { | 128 | for ( it = tagMap.begin(); it != tagMap.end(); ++it ) { |
128 | QStringList toks = QStringList::split( ' ', it.data() ); | 129 | QStringList toks = QStringList::split( ' ', it.data() ); |
129 | QStringList::Iterator t; | 130 | QStringList::Iterator t; |
130 | 131 | ||
131 | for ( t = toks.begin(); t != toks.end(); ++t ) { | 132 | for ( t = toks.begin(); t != toks.end(); ++t ) { |
132 | if ( it.key() == "TARGET" ) { | 133 | if ( it.key() == "TARGET" ) { |
133 | target = *t; | 134 | target = *t; |
135 | qWarning("%s %s", it.key().latin1(), (*t).latin1() ); | ||
134 | }else if ( it.key() == "TEMPLATE" ) { | 136 | }else if ( it.key() == "TEMPLATE" ) { |
135 | if ( (*t).stripWhiteSpace().lower() == "lib" ) | 137 | if ( (*t).stripWhiteSpace().lower() == "lib" ) |
136 | isLib = TRUE; | 138 | isLib = TRUE; |
137 | } | 139 | } |
138 | } | 140 | } |
139 | } | 141 | } |
142 | qWarning("%s", target.latin1() ); | ||
140 | metaQmFile( OPIE::self()->opieDir(opiedir), | 143 | metaQmFile( OPIE::self()->opieDir(opiedir), |
141 | languageList, target, isLib, verbose ); | 144 | languageList, target, isLib, verbose ); |
142 | } | 145 | } |
143 | } | 146 | } |
144 | 147 | ||
145 | if ( numFiles == 0 ) { | 148 | if ( numFiles == 0 ) { |
146 | printUsage(); | 149 | printUsage(); |
147 | return 1; | 150 | return 1; |
148 | } | 151 | } |
149 | return 0; | 152 | return 0; |
150 | } | 153 | } |