|
From: <arn...@us...> - 2008-03-30 08:28:28
|
Revision: 1090
http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=1090&view=rev
Author: arnetheduck
Date: 2008-03-30 01:28:27 -0700 (Sun, 30 Mar 2008)
Log Message:
-----------
Add xml->po conversion tool, only pipe when not saving temps
Modified Paths:
--------------
dcplusplus/trunk/SConstruct
Added Paths:
-----------
dcplusplus/trunk/x2po.py
Property Changed:
----------------
dcplusplus/trunk/
Property changes on: dcplusplus/trunk
___________________________________________________________________
Name: bzr:revision-info
- timestamp: 2008-03-29 13:40:42.691999912 +0100
committer: Jacek Sieka <arn...@gm...>
properties:
branch-nick: dcplusplus
+ timestamp: 2008-03-29 13:49:26.227999926 +0100
committer: Jacek Sieka <arn...@gm...>
properties:
branch-nick: dcplusplus
Name: bzr:file-ids
- smartwin/include/smartwin/widgets/Frame.h 712@f586c4b0-9d0d-0410-bc51-f1fe239209fc:dcplusplus%2Ftrunk:smartwin%2Finclude%2Fsmartwin%2Fwidgets%2FWidgetWindowBase.h
smartwin/include/smartwin/widgets/ModalDialog.h 712@f586c4b0-9d0d-0410-bc51-f1fe239209fc:dcplusplus%2Ftrunk:smartwin%2Finclude%2Fsmartwin%2Fwidgets%2FWidgetModalDialog.h
smartwin/include/smartwin/widgets/ModelessDialog.h 712@f586c4b0-9d0d-0410-bc51-f1fe239209fc:dcplusplus%2Ftrunk:smartwin%2Finclude%2Fsmartwin%2Fwidgets%2FWidgetDialog.h
smartwin/include/smartwin/widgets/Window.h 712@f586c4b0-9d0d-0410-bc51-f1fe239209fc:dcplusplus%2Ftrunk:smartwin%2Finclude%2Fsmartwin%2Fwidgets%2FWidgetWindow.h
+ x2po.py x2po.py-20080329124851-4mzy5m3ojyowxxbv-1
Name: bzr:revision-id:v3-trunk1
- 1027 arn...@gm...-20080323183926-schknwnkgeo7ivdn
1028 zouzou123gen-20080323220411-r8usuc3qxwuh7zsn
1029 zouzou123gen-20080323221249-0su72zaj13e706mk
1030 arn...@gm...-20080324140623-muba1dl46m000o8c
1031 zouzou123gen-20080324141933-qbgr93ugpe0297m6
1032 arn...@gm...-20080324153706-siidja05n84i00b1
1033 arn...@gm...-20080324153823-lhn3awurnu77riln
1034 arn...@gm...-20080324165650-zapppziji67yf5a2
1035 zouzou123gen-20080324175936-4mqc2kh0lo5wtdu2
1036 zouzou123gen-20080325004602-6wdsoym95mjuhwd3
1037 arn...@gm...-20080325100659-8fqy6q65itmghlep
1038 zouzou123gen-20080325175216-s297sdiucukfvijh
1039 arn...@gm...-20080325210137-3dfqyoi8ykosy087
1040 arn...@gm...-20080325211747-nwwy1eb33r071sca
1041 arn...@gm...-20080326084110-qbselrjckku275xi
1042 zouzou123gen-20080326123631-35642mgbk2i4ty32
1043 zouzou123gen-20080326124345-f4xwn2d3ty8ubd6r
1044 arn...@gm...-20080326162031-il0nyms30w0mky43
1045 arn...@gm...-20080326164801-8dru8mjc06xgzjpv
1046 arn...@gm...-20080326170438-uzl2rx8fqnohak7g
1047 zouzou123gen-20080326172821-d6uqcbmfb0c6rwlv
1048 arn...@gm...-20080326213257-qlgdh7m2712p2l0q
1049 arn...@gm...-20080326214313-ktnoekgk3s0wmatz
1050 arn...@gm...-20080326215256-0j1iqrf286b9g7zf
1051 arn...@gm...-20080327082121-hoi22wh1gwjdfbyd
1052 arn...@gm...-20080327120639-um3tukdt374rwvgm
1053 zouzou123gen-20080327130703-6vtek6uxy3vua543
1054 arn...@gm...-20080327215831-dmg5mkufskabwkro
1055 arn...@gm...-20080327231459-cdztcv25alsuyqmf
1056 arn...@gm...-20080328085925-gceybsr53oml1p24
1057 arn...@gm...-20080328200512-1sjuu6bcnl2dyd2a
1058 arn...@gm...-20080328210347-bussqjrm5mfswh7o
1059 arn...@gm...-20080329055630-braiir1dskv7a4qm
1060 arn...@gm...-20080329061558-rck8dz60wpj3c5ja
1061 arn...@gm...-20080329081253-if6o5jn329mbzfpl
1062 arn...@gm...-20080329081619-cb4x930j8sp55cs0
1063 arn...@gm...-20080329103216-hgjzo7ra2zixbztd
1064 arn...@gm...-20080329124042-q3aw4iodmo5kafyp
+ 1027 arn...@gm...-20080323183926-schknwnkgeo7ivdn
1028 zouzou123gen-20080323220411-r8usuc3qxwuh7zsn
1029 zouzou123gen-20080323221249-0su72zaj13e706mk
1030 arn...@gm...-20080324140623-muba1dl46m000o8c
1031 zouzou123gen-20080324141933-qbgr93ugpe0297m6
1032 arn...@gm...-20080324153706-siidja05n84i00b1
1033 arn...@gm...-20080324153823-lhn3awurnu77riln
1034 arn...@gm...-20080324165650-zapppziji67yf5a2
1035 zouzou123gen-20080324175936-4mqc2kh0lo5wtdu2
1036 zouzou123gen-20080325004602-6wdsoym95mjuhwd3
1037 arn...@gm...-20080325100659-8fqy6q65itmghlep
1038 zouzou123gen-20080325175216-s297sdiucukfvijh
1039 arn...@gm...-20080325210137-3dfqyoi8ykosy087
1040 arn...@gm...-20080325211747-nwwy1eb33r071sca
1041 arn...@gm...-20080326084110-qbselrjckku275xi
1042 zouzou123gen-20080326123631-35642mgbk2i4ty32
1043 zouzou123gen-20080326124345-f4xwn2d3ty8ubd6r
1044 arn...@gm...-20080326162031-il0nyms30w0mky43
1045 arn...@gm...-20080326164801-8dru8mjc06xgzjpv
1046 arn...@gm...-20080326170438-uzl2rx8fqnohak7g
1047 zouzou123gen-20080326172821-d6uqcbmfb0c6rwlv
1048 arn...@gm...-20080326213257-qlgdh7m2712p2l0q
1049 arn...@gm...-20080326214313-ktnoekgk3s0wmatz
1050 arn...@gm...-20080326215256-0j1iqrf286b9g7zf
1051 arn...@gm...-20080327082121-hoi22wh1gwjdfbyd
1052 arn...@gm...-20080327120639-um3tukdt374rwvgm
1053 zouzou123gen-20080327130703-6vtek6uxy3vua543
1054 arn...@gm...-20080327215831-dmg5mkufskabwkro
1055 arn...@gm...-20080327231459-cdztcv25alsuyqmf
1056 arn...@gm...-20080328085925-gceybsr53oml1p24
1057 arn...@gm...-20080328200512-1sjuu6bcnl2dyd2a
1058 arn...@gm...-20080328210347-bussqjrm5mfswh7o
1059 arn...@gm...-20080329055630-braiir1dskv7a4qm
1060 arn...@gm...-20080329061558-rck8dz60wpj3c5ja
1061 arn...@gm...-20080329081253-if6o5jn329mbzfpl
1062 arn...@gm...-20080329081619-cb4x930j8sp55cs0
1063 arn...@gm...-20080329103216-hgjzo7ra2zixbztd
1064 arn...@gm...-20080329124042-q3aw4iodmo5kafyp
1065 arn...@gm...-20080329124926-2je1z18p0272zpua
Modified: dcplusplus/trunk/SConstruct
===================================================================
--- dcplusplus/trunk/SConstruct 2008-03-30 08:17:30 UTC (rev 1089)
+++ dcplusplus/trunk/SConstruct 2008-03-30 08:28:27 UTC (rev 1090)
@@ -17,7 +17,7 @@
)
gcc_flags = {
- 'common': ['-g', '-Wall', '-Wextra', '-pipe', '-Wno-unused-parameter', '-Wno-missing-field-initializers', '-fexceptions', '-mthreads'],
+ 'common': ['-g', '-Wall', '-Wextra', '-Wno-unused-parameter', '-Wno-missing-field-initializers', '-fexceptions', '-mthreads'],
'debug': [],
'release' : ['-O2', '-mwindows']
}
@@ -105,10 +105,13 @@
env.Append(LIBS = ['stlport.5.1'])
elif 'gcc' in env['TOOLS']:
env.Append(CPPDEFINES = ['BOOST_HAS_GCC_TR1'])
-
-if env['savetemps'] and 'gcc' in env['TOOLS']:
- env.Append(CCFLAGS = ['-save-temps', '-fverbose-asm'])
+if 'gcc' in env['TOOLS']:
+ if env['savetemps']:
+ env.Append(CCFLAGS = ['-save-temps', '-fverbose-asm'])
+ else:
+ env.Append(CCFLAGS = ['-pipe'])
+
if env['unicode']:
env.Append(CPPDEFINES = ['UNICODE', '_UNICODE'])
Added: dcplusplus/trunk/x2po.py
===================================================================
--- dcplusplus/trunk/x2po.py (rev 0)
+++ dcplusplus/trunk/x2po.py 2008-03-30 08:28:27 UTC (rev 1090)
@@ -0,0 +1,365 @@
+# -*- coding: utf-8 -*-
+
+import sys, re, codecs
+
+if len(sys.argv) < 5:
+ print "x2po pot source locale translator project"
+ sys.exit(0)
+
+pot = sys.argv[1]
+source = sys.argv[2]
+locale = sys.argv[3]
+translator = sys.argv[4]
+project = sys.argv[5]
+
+langs = {
+ "aa": "Afar",
+ "ab": "Abkhazian",
+ "ace": "Achinese",
+ "ad": "Adangme",
+ "ae": "Avestan",
+ "af": "Afrikaans",
+ "ak": "Akan",
+ "am": "Amharic",
+ "an": "Aragonese",
+ "ang": "Old English",
+ "ar": "Arabic",
+ "as": "Assamese",
+ "av": "Avaric",
+ "awa": "Awadhi",
+ "ay": "Aymara",
+ "az": "Azerbaijani",
+ "ba": "Bashkir",
+ "bad": "Banda",
+ "bal": "Baluchi",
+ "ban": "Balinese",
+ "be": "Belarusian",
+ "bem": "Bemba",
+ "bg": "Bulgarian",
+ "bh": "Bihari",
+ "bho": "Bhojpuri",
+ "bi": "Bislama",
+ "bik": "Bikol",
+ "bin": "Bini",
+ "bm": "Bambara",
+ "bn": "Bengali",
+ "bo": "Tibetan",
+ "br": "Breton",
+ "bs": "Bosnian",
+ "btk": "Batak",
+ "bug": "Buginese",
+ "ca": "Catalan",
+ "ce": "Chechen",
+ "ceb": "Cebuano",
+ "ch": "Chamorro",
+ "co": "Corsican",
+ "cr": "Cree",
+ "cs": "Czech",
+ "csb": "Kashubian",
+ "cu": "Church Slavic",
+ "cv": "Chuvash",
+ "cy": "Welsh",
+ "da": "Danish",
+ "de": "German",
+ "din": "Dinka",
+ "doi": "Dogri",
+ "dv": "Divehi",
+ "dz": "Dzongkha",
+ "ee": "Ewe",
+ "el": "Greek",
+ "en": "English",
+ "eo": "Esperanto",
+ "es": "Spanish",
+ "et": "Estonian",
+ "eu": "Basque",
+ "fa": "Persian",
+ "ff": "Fulah",
+ "fi": "Finnish",
+ "fil": "Filipino",
+ "fj": "Fijian",
+ "fo": "Faroese",
+ "fon": "Fon",
+ "fr": "French",
+ "fy": "Western Frisian",
+ "ga": "Irish",
+ "gd": "Scots",
+ "gl": "Galician",
+ "gn": "Guarani",
+ "gon": "Gondi",
+ "gsw": "Swiss German",
+ "gu": "Gujarati",
+ "gv": "Manx",
+ "ha": "Hausa",
+ "he": "Hebrew",
+ "hi": "Hindi",
+ "hil": "Hiligaynon",
+ "hmn": "Hmong",
+ "ho": "Hiri Motu",
+ "hr": "Croatian",
+ "ht": "Haitian",
+ "hu": "Hungarian",
+ "hy": "Armenian",
+ "hz": "Herero",
+ "ia": "Interlingua",
+ "id": "Indonesian",
+ "ie": "Interlingue",
+ "ig": "Igbo",
+ "ii": "Sichuan Yi",
+ "ik": "Inupiak",
+ "ilo": "Iloko",
+ "is": "Icelandic",
+ "it": "Italian",
+ "iu": "Inuktitut",
+ "ja": "Japanese",
+ "jab": "Hyam",
+ "jv": "Javanese",
+ "ka": "Georgian",
+ "kab": "Kabyle",
+ "kaj": "Jju",
+ "kam": "Kamba",
+ "kbd": "Kabardian",
+ "kcg": "Tyap",
+ "kdm": "Kagoma",
+ "kg": "Kongo",
+ "ki": "Kikuyu",
+ "kj": "Kuanyama",
+ "kk": "Kazakh",
+ "kl": "Kalaallisut",
+ "km": "Khmer",
+ "kmb": "Kimbundu",
+ "kn": "Kannada",
+ "ko": "Korean",
+ "kr": "Kanuri",
+ "kru": "Kurukh",
+ "ks": "Kashmiri",
+ "ku": "Kurdish",
+ "kv": "Komi",
+ "kw": "Cornish",
+ "ky": "Kirghiz",
+ "kok": "Konkani",
+ "la": "Latin",
+ "lb": "Letzeburgesch",
+ "lg": "Ganda",
+ "li": "Limburgish",
+ "ln": "Lingala",
+ "lo": "Laotian",
+ "lt": "Lithuanian",
+ "lu": "Luba-Katanga",
+ "lua": "Luba-Lulua",
+ "luo": "Luo",
+ "lv": "Latvian",
+ "mad": "Madurese",
+ "mag": "Magahi",
+ "mai": "Maithili",
+ "mak": "Makasar",
+ "man": "Mandingo",
+ "men": "Mende",
+ "mg": "Malagasy",
+ "mh": "Marshallese",
+ "mi": "Maori",
+ "min": "Minangkabau",
+ "mk": "Macedonian",
+ "ml": "Malayalam",
+ "mn": "Mongolian",
+ "mni": "Manipuri",
+ "mo": "Moldavian",
+ "mos": "Mossi",
+ "mr": "Marathi",
+ "ms": "Malay",
+ "mt": "Maltese",
+ "mwr": "Marwari",
+ "my": "Burmese",
+ "myn": "Mayan",
+ "na": "Nauru",
+ "nap": "Neapolitan",
+ "nah": "Nahuatl",
+ "nb": "Norwegian Bokmal",
+ "nd": "North Ndebele",
+ "nds": "Low Saxon",
+ "ne": "Nepali",
+ "ng": "Ndonga",
+ "nl": "Dutch",
+ "nn": "Norwegian Nynorsk",
+ "no": "Norwegian",
+ "nr": "South Ndebele",
+ "nso": "Northern Sotho",
+ "nv": "Navajo",
+ "ny": "Nyanja",
+ "nym": "Nyamwezi",
+ "nyn": "Nyankole",
+ "oc": "Occitan",
+ "oj": "Ojibwa",
+ "om": "(Afan) Oromo",
+ "or": "Oriya",
+ "os": "Ossetian",
+ "pa": "Punjabi",
+ "pag": "Pangasinan",
+ "pam": "Pampanga",
+ "pbb": "Páez",
+ "pi": "Pali",
+ "pl": "Polish",
+ "ps": "Pashto",
+ "pt": "Portuguese",
+ "qu": "Quechua",
+ "raj": "Rajasthani",
+ "rm": "Rhaeto-Roman",
+ "rn": "Kirundi",
+ "ro": "Romanian",
+ "ru": "Russian",
+ "rw": "Kinyarwanda",
+ "sa": "Sanskrit",
+ "sas": "Sasak",
+ "sat": "Santali",
+ "sc": "Sardinian",
+ "scn": "Sicilian",
+ "sd": "Sindhi",
+ "se": "Northern Sami",
+ "sg": "Sango",
+ "shn": "Shan",
+ "si": "Sinhala",
+ "sid": "Sidamo",
+ "sk": "Slovak",
+ "sl": "Slovenian",
+ "sm": "Samoan",
+ "sn": "Shona",
+ "so": "Somali",
+ "sq": "Albanian",
+ "sr": "Serbian",
+ "srr": "Serer",
+ "ss": "Siswati",
+ "st": "Sesotho",
+ "su": "Sundanese",
+ "suk": "Sukuma",
+ "sus": "Susu",
+ "sv": "Swedish",
+ "sw": "Swahili",
+ "ta": "Tamil",
+ "te": "Telugu",
+ "tem": "Timne",
+ "tet": "Tetum",
+ "tg": "Tajik",
+ "th": "Thai",
+ "ti": "Tigrinya",
+ "tiv": "Tiv",
+ "tk": "Turkmen",
+ "tl": "Tagalog",
+ "tn": "Setswana",
+ "to": "Tonga",
+ "tr": "Turkish",
+ "ts": "Tsonga",
+ "tt": "Tatar",
+ "tum": "Tumbuka",
+ "tw": "Twi",
+ "ty": "Tahitian",
+ "ug": "Uighur",
+ "uk": "Ukrainian",
+ "umb": "Umbundu",
+ "ur": "Urdu",
+ "uz": "Uzbek",
+ "ve": "Venda",
+ "vi": "Vietnamese",
+ "vo": "Volapuk",
+ "wal": "Walamo",
+ "war": "Waray",
+ "wen": "Sorbian",
+ "wo": "Wolof",
+ "xh": "Xhosa",
+ "yao": "Yao",
+ "yi": "Yiddish",
+ "yo": "Yoruba",
+ "za": "Zhuang",
+ "zh": "Chinese",
+ "zu": "Zulu",
+ "zap": "Zapotec"
+}
+plurals = {
+ "ja": "nplurals=1; plural=0;" ,
+ "ko": "nplurals=1; plural=0;" ,
+ "vi": "nplurals=1; plural=0;" ,
+ "tr": "nplurals=1; plural=0;" ,
+ "da": "nplurals=2; plural=(n != 1);" ,
+ "nl": "nplurals=2; plural=(n != 1);" ,
+ "en": "nplurals=2; plural=(n != 1);" ,
+ "fo": "nplurals=2; plural=(n != 1);" ,
+ "de": "nplurals=2; plural=(n != 1);" ,
+ "nb": "nplurals=2; plural=(n != 1);" ,
+ "no": "nplurals=2; plural=(n != 1);" ,
+ "nn": "nplurals=2; plural=(n != 1);" ,
+ "sv": "nplurals=2; plural=(n != 1);" ,
+ "et": "nplurals=2; plural=(n != 1);" ,
+ "fi": "nplurals=2; plural=(n != 1);" ,
+ "el": "nplurals=2; plural=(n != 1);" ,
+ "he": "nplurals=2; plural=(n != 1);" ,
+ "it": "nplurals=2; plural=(n != 1);" ,
+ "pt": "nplurals=2; plural=(n != 1);" ,
+ "es": "nplurals=2; plural=(n != 1);" ,
+ "eo": "nplurals=2; plural=(n != 1);" ,
+ "hu": "nplurals=2; plural=(n != 1);" ,
+ "fr": "nplurals=2; plural=(n > 1);" ,
+ "pt_BR": "nplurals=2; plural=(n > 1);" ,
+ "lv": "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);" ,
+ "ga": "nplurals=3; plural=n==1 ? 0 : n==2 ? 1 : 2;" ,
+ "ro": "nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < 20)) ? 1 : 2;" ,
+ "lt": "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);" ,
+ "hr": "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" ,
+ "sr": "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" ,
+ "ru": "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" ,
+ "uk": "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" ,
+ "sk": "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;" ,
+ "cs": "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;" ,
+ "pl": "nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" ,
+ "sl": "nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);"
+
+}
+
+ids = []
+for line in codecs.open(pot, "r", "utf-8"):
+ m = re.search(ur'^msgid "([^"]+)', line)
+ if m:
+ ids += [m.group(1)]
+
+oldmap = { }
+sre = re.compile(ur'<String Name="([^"]+)">([^<]+)<')
+
+for line in codecs.open(u"Example.xml", "r", "utf-8"):
+ m = sre.search(line)
+ if m:
+ oldmap[m.group(1)] = m.group(2)
+
+newmap = { }
+for line in codecs.open(source, "r", "utf-8"):
+ m = sre.search(line)
+ if m:
+ s = oldmap.get(m.group(1))
+ if s and s in ids:
+ newmap[s] = m.group(2).replace('"', '\\"')
+
+out = codecs.open(project + "/po/template-" + locale + ".po", "w", "utf-8")
+plural = plurals.get(locale, "plurals=2; plural=(n != 1);")
+language = langs.get(locale, "XXX");
+
+out.write(r"""
+# LANGUAGE translations for the DC++ package.
+# Copyright (C) 2008 The translators
+# This file is distributed under the same license as the DC++ package.
+# <TRANSLATOR>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PROJECT\n"
+"Report-Msgid-Bugs-To: dcp...@li...\n"
+"Last-Translator: <TRANSLATOR>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: PLURAL\n"
+
+""".replace("TRANSLATOR", translator).replace("PROJECT", project).replace("PLURAL", plural).replace("LANGUAGE", language)
+)
+
+for k, v in newmap.iteritems():
+ out.write(u'msgid "' + k + u'"\n')
+ out.write(u'msgstr "' + v + u'"\n')
+ out.write(u'\n')
+
+out.close()
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|