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. |