- The naming convention for a french empty translation of x.doc is x_fr.doc
 - Fixed mimetype and initial file sizes
 - Raised minor issue: AR-1487
 - Shortened crazy language names
 - Made language name ordering follow the declaration order in the config XML file


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@5812 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Derek Hulley
2007-05-30 15:03:16 +00:00
parent 389687464d
commit 44bf30583e
8 changed files with 510 additions and 467 deletions

View File

@@ -9,7 +9,7 @@
</config> </config>
<!-- <!--
Define a ordered map of languages matched by his unique language code. Define a ordered map of languages matched by the unique language code.
--> -->
<config evaluator="string-compare" condition="Languages Filter Map"> <config evaluator="string-compare" condition="Languages Filter Map">
@@ -19,216 +19,192 @@
The list is ordered by language code ascending. The list is ordered by language code ascending.
--> -->
<ISO_639-1> <ISO_639-1>
<lang order="1" code="aa">Afar</lang> <lang code="aa">Afar</lang>
<lang order="2" code="ab">Abkhazian</lang> <lang code="ab">Abkhazian</lang>
<lang order="3" code="ae">Avestan</lang> <lang code="ae">Avestan</lang>
<lang order="4" code="af">Afrikaans</lang> <lang code="af">Afrikaans</lang>
<lang order="5" code="ak">Akan</lang> <lang code="ak">Akan</lang>
<lang order="6" code="am">Amharic</lang> <lang code="am">Amharic</lang>
<lang order="7" code="an">Aragonese</lang> <lang code="an">Aragonese</lang>
<lang order="8" code="ar">Arabic</lang> <lang code="ar">Arabic</lang>
<lang order="9" code="as">Assamese</lang> <lang code="as">Assamese</lang>
<lang order="10" code="av">Avaric</lang> <lang code="av">Avaric</lang>
<lang order="11" code="ay">Aymara</lang> <lang code="ay">Aymara</lang>
<lang order="12" code="az">Azerbaijani</lang> <lang code="az">Azerbaijani</lang>
<lang order="13" code="ba">Bashkir</lang> <lang code="ba">Bashkir</lang>
<lang order="14" code="be">Belarusian</lang> <lang code="be">Belarusian</lang>
<lang order="15" code="bg">Bulgarian</lang> <lang code="bg">Bulgarian</lang>
<lang order="16" code="bh">Bihari</lang> <lang code="bh">Bihari</lang>
<lang order="17" code="bi">Bislama</lang> <lang code="bi">Bislama</lang>
<lang order="18" code="bm">Bambara</lang> <lang code="bm">Bambara</lang>
<lang order="19" code="bn">Bengali</lang> <lang code="bn">Bengali</lang>
<lang order="20" code="bo">Tibetan</lang> <lang code="bo">Tibetan</lang>
<lang order="21" code="br">Breton</lang> <lang code="br">Breton</lang>
<lang order="22" code="bs">Bosnian</lang> <lang code="bs">Bosnian</lang>
<lang order="23" code="ca">Catalan; Valencian</lang> <lang code="ca">Catalan; Valencian</lang>
<lang order="24" code="ce">Chechen</lang> <lang code="ce">Chechen</lang>
<lang order="25" code="ch">Chamorro</lang> <lang code="ch">Chamorro</lang>
<lang order="26" code="co">Corsican</lang> <lang code="co">Corsican</lang>
<lang order="27" code="cr">Cree</lang> <lang code="cr">Cree</lang>
<lang order="28" code="cs">Czech</lang> <lang code="cs">Czech</lang>
<lang order="29" code="cu"> <lang code="cu">Slavic</lang>
Church Slavic; Old Slavonic; Church Slavonic; Old Bulgarian; Old Church Slavonic <lang code="cv">Chuvash</lang>
</lang> <lang code="cy">Welsh</lang>
<lang order="30" code="cv">Chuvash</lang> <lang code="da">Danish</lang>
<lang order="31" code="cy">Welsh</lang> <lang code="de">German</lang>
<lang order="32" code="da">Danish</lang> <lang code="dv">Maldivian</lang>
<lang order="33" code="de">German</lang> <lang code="dz">Dzongkha</lang>
<lang order="34" code="dv"> <lang code="ee">Ewe</lang>
Divehi; Dhivehi; Maldivian <lang code="el">Greek</lang>
</lang> <lang code="en">English</lang>
<lang order="35" code="dz">Dzongkha</lang> <lang code="eo">Esperanto</lang>
<lang order="36" code="ee">Ewe</lang> <lang code="es">Spanish</lang>
<lang order="37" code="el">Greek</lang> <lang code="et">Estonian</lang>
<lang order="38" code="en">English</lang> <lang code="eu">Basque</lang>
<lang order="39" code="eo">Esperanto</lang> <lang code="fa">Persian</lang>
<lang order="40" code="es">Spanish</lang> <lang code="ff">Fulah</lang>
<lang order="41" code="et">Estonian</lang> <lang code="fi">Finnish</lang>
<lang order="42" code="eu">Basque</lang> <lang code="fj">Fijian</lang>
<lang order="43" code="fa">Persian</lang> <lang code="fo">Faroese</lang>
<lang order="44" code="ff">Fulah</lang> <lang code="fr">French</lang>
<lang order="45" code="fi">Finnish</lang> <lang code="fy">Western Frisian</lang>
<lang order="46" code="fj">Fijian</lang> <lang code="ga">Irish</lang>
<lang order="47" code="fo">Faroese</lang> <lang code="gd">Gaelic</lang>
<lang order="48" code="fr">French</lang> <lang code="gl">Galician</lang>
<lang order="49" code="fy">Western Frisian</lang> <lang code="gn">Guarani</lang>
<lang order="50" code="ga">Irish</lang> <lang code="gu">Gujarati</lang>
<lang order="51" code="gd"> <lang code="gv">Manx</lang>
Gaelic; Scottish Gaelic <lang code="ha">Hausa</lang>
</lang> <lang code="he">Hebrew</lang>
<lang order="52" code="gl">Galician</lang> <lang code="hi">Hindi</lang>
<lang order="53" code="gn">Guarani</lang> <lang code="ho">Hiri Motu</lang>
<lang order="54" code="gu">Gujarati</lang> <lang code="hr">Croatian</lang>
<lang order="55" code="gv">Manx</lang> <lang code="ht">Haitian</lang>
<lang order="56" code="ha">Hausa</lang> <lang code="hu">Hungarian</lang>
<lang order="57" code="he">Hebrew</lang> <lang code="hy">Armenian</lang>
<lang order="58" code="hi">Hindi</lang> <lang code="hz">Herero</lang>
<lang order="59" code="ho">Hiri Motu</lang> <lang code="ia">Interlingua</lang>
<lang order="60" code="hr">Croatian</lang> <lang code="id">Indonesian</lang>
<lang order="61" code="ht"> <lang code="ie">Interlingue</lang>
Haitian; Haitian Creole <lang code="ig">Igbo</lang>
</lang> <lang code="ii">Sichuan Yi</lang>
<lang order="62" code="hu">Hungarian</lang> <lang code="ik">Inupiaq</lang>
<lang order="63" code="hy">Armenian</lang> <lang code="io">Ido</lang>
<lang order="64" code="hz">Herero</lang> <lang code="is">Icelandic</lang>
<lang order="65" code="ia"> <lang code="it">Italian</lang>
Interlingua (International Auxiliary Language Association) <lang code="iu">Inuktitut</lang>
</lang> <lang code="ja">Japanese</lang>
<lang order="66" code="id">Indonesian</lang> <lang code="jv">Javanese</lang>
<lang order="67" code="ie">Interlingue</lang> <lang code="ka">Georgian</lang>
<lang order="68" code="ig">Igbo</lang> <lang code="kg">Kongo</lang>
<lang order="69" code="ii">Sichuan Yi</lang> <lang code="ki">Kikuyu; Gikuyu</lang>
<lang order="70" code="ik">Inupiaq</lang> <lang code="kj">Kuanyama; Kwanyama</lang>
<lang order="71" code="io">Ido</lang> <lang code="kk">Kazakh</lang>
<lang order="72" code="is">Icelandic</lang> <lang code="kl">Kalaallisut; Greenlandic</lang>
<lang order="73" code="it">Italian</lang> <lang code="km">Khmer</lang>
<lang order="74" code="iu">Inuktitut</lang> <lang code="kn">Kannada</lang>
<lang order="75" code="ja">Japanese</lang> <lang code="ko">Korean</lang>
<lang order="76" code="jv">Javanese</lang> <lang code="kr">Kanuri</lang>
<lang order="77" code="ka">Georgian</lang> <lang code="ks">Kashmiri</lang>
<lang order="78" code="kg">Kongo</lang> <lang code="ku">Kurdish</lang>
<lang order="79" code="ki">Kikuyu; Gikuyu</lang> <lang code="kv">Komi</lang>
<lang order="80" code="kj">Kuanyama; Kwanyama</lang> <lang code="kw">Cornish</lang>
<lang order="81" code="kk">Kazakh</lang> <lang code="ky">Kirghiz</lang>
<lang order="82" code="kl"> <lang code="la">Latin</lang>
Kalaallisut; Greenlandic <lang code="lb">Luxembourgish; Letzeburgesch</lang>
</lang> <lang code="lg">Ganda</lang>
<lang order="83" code="km">Khmer</lang> <lang code="li">Limburgan; Limburger; Limburgish</lang>
<lang order="84" code="kn">Kannada</lang> <lang code="ln">Lingala</lang>
<lang order="85" code="ko">Korean</lang> <lang code="lo">Lao</lang>
<lang order="86" code="kr">Kanuri</lang> <lang code="lt">Lithuanian</lang>
<lang order="87" code="ks">Kashmiri</lang> <lang code="lu">Luba-Katanga</lang>
<lang order="88" code="ku">Kurdish</lang> <lang code="lv">Latvian</lang>
<lang order="89" code="kv">Komi</lang> <lang code="mg">Malagasy</lang>
<lang order="90" code="kw">Cornish</lang> <lang code="mh">Marshallese</lang>
<lang order="91" code="ky">Kirghiz</lang> <lang code="mi">Maori</lang>
<lang order="92" code="la">Latin</lang> <lang code="mk">Macedonian</lang>
<lang order="93" code="lb"> <lang code="ml">Malayalam</lang>
Luxembourgish; Letzeburgesch <lang code="mn">Mongolian</lang>
</lang> <lang code="mo">Moldavian</lang>
<lang order="94" code="lg">Ganda</lang> <lang code="mr">Marathi</lang>
<lang order="95" code="li"> <lang code="ms">Malay</lang>
Limburgan; Limburger; Limburgish <lang code="mt">Maltese</lang>
</lang> <lang code="my">Burmese</lang>
<lang order="96" code="ln">Lingala</lang> <lang code="na">Nauru</lang>
<lang order="97" code="lo">Lao</lang> <lang code="nb">Norvégien Bokmål</lang>
<lang order="98" code="lt">Lithuanian</lang> <lang code="nd">North Ndebele</lang>
<lang order="99" code="lu">Luba-Katanga</lang> <lang code="ne">Nepali</lang>
<lang order="100" code="lv">Latvian</lang> <lang code="ng">Ndonga</lang>
<lang order="101" code="mg">Malagasy</lang> <lang code="nl">Dutch</lang>
<lang order="102" code="mh">Marshallese</lang> <lang code="nn">Norwegian Nynorsk</lang>
<lang order="103" code="mi">Maori</lang> <lang code="no">Norwegian</lang>
<lang order="104" code="mk">Macedonian</lang> <lang code="nr">South Ndebele</lang>
<lang order="105" code="ml">Malayalam</lang> <lang code="nv">Navajo; Navaho</lang>
<lang order="106" code="mn">Mongolian</lang> <lang code="ny">Chichewa; Chewa; Nyanja</lang>
<lang order="107" code="mo">Moldavian</lang> <lang code="oc">Occitan (post 1500); Provençal</lang>
<lang order="108" code="mr">Marathi</lang> <lang code="oj">Ojibwa</lang>
<lang order="109" code="ms">Malay</lang> <lang code="om">Oromo</lang>
<lang order="110" code="mt">Maltese</lang> <lang code="or">Oriya</lang>
<lang order="111" code="my">Burmese</lang> <lang code="os">Ossetian; Ossetic</lang>
<lang order="112" code="na">Nauru</lang> <lang code="pa">Panjabi; Punjabi</lang>
<lang order="113" code="nb">Norvégien Bokmål</lang> <lang code="pi">Pali</lang>
<lang order="114" code="nd"> <lang code="pl">Polish</lang>
Ndebele, North; North Ndebele <lang code="ps">Pushto</lang>
</lang> <lang code="pt">Portuguese</lang>
<lang order="115" code="ne">Nepali</lang> <lang code="qu">Quechua</lang>
<lang order="116" code="ng">Ndonga</lang> <lang code="rm">Raeto-Romance</lang>
<lang order="117" code="nl">Dutch</lang> <lang code="rn">Rundi</lang>
<lang order="118" code="nn">Norwegian Nynorsk</lang> <lang code="ro">Romanian</lang>
<lang order="119" code="no">Norwegian</lang> <lang code="ru">Russian</lang>
<lang order="120" code="nr"> <lang code="rw">Kinyarwanda</lang>
Ndebele, South; South Ndebele <lang code="sa">Sanskrit</lang>
</lang> <lang code="sc">Sardinian</lang>
<lang order="121" code="nv">Navajo; Navaho</lang> <lang code="sd">Sindhi</lang>
<lang order="122" code="ny"> <lang code="se">Northern Sami</lang>
Chichewa; Chewa; Nyanja <lang code="sg">Sango</lang>
</lang> <lang code="si">Sinhala; Sinhalese</lang>
<lang order="123" code="oc"> <lang code="sk">Slovak</lang>
Occitan (post 1500); Provençal <lang code="sl">Slovenian</lang>
</lang> <lang code="sm">Samoan</lang>
<lang order="124" code="oj">Ojibwa</lang> <lang code="sn">Shona</lang>
<lang order="125" code="om">Oromo</lang> <lang code="so">Somali</lang>
<lang order="126" code="or">Oriya</lang> <lang code="sq">Albanian</lang>
<lang order="127" code="os">Ossetian; Ossetic</lang> <lang code="sr">Serbian</lang>
<lang order="128" code="pa">Panjabi; Punjabi</lang> <lang code="ss">Swati</lang>
<lang order="129" code="pi">Pali</lang> <lang code="st">Sotho, Southern</lang>
<lang order="130" code="pl">Polish</lang> <lang code="su">Sundanese</lang>
<lang order="131" code="ps">Pushto</lang> <lang code="sv">Swedish</lang>
<lang order="132" code="pt">Portuguese</lang> <lang code="sw">Swahili</lang>
<lang order="133" code="qu">Quechua</lang> <lang code="ta">Tamil</lang>
<lang order="134" code="rm">Raeto-Romance</lang> <lang code="te">Telugu</lang>
<lang order="135" code="rn">Rundi</lang> <lang code="tg">Tajik</lang>
<lang order="136" code="ro">Romanian</lang> <lang code="th">Thai</lang>
<lang order="137" code="ru">Russian</lang> <lang code="ti">Tigrinya</lang>
<lang order="138" code="rw">Kinyarwanda</lang> <lang code="tk">Turkmen</lang>
<lang order="139" code="sa">Sanskrit</lang> <lang code="tl">Tagalog</lang>
<lang order="140" code="sc">Sardinian</lang> <lang code="tn">Tswana</lang>
<lang order="141" code="sd">Sindhi</lang> <lang code="to">Tonga (Tonga Islands)</lang>
<lang order="142" code="se">Northern Sami</lang> <lang code="tr">Turkish</lang>
<lang order="143" code="sg">Sango</lang> <lang code="tr">Turkish</lang>
<lang order="144" code="si">Sinhala; Sinhalese</lang> <lang code="ts">Tsonga</lang>
<lang order="145" code="sk">Slovak</lang> <lang code="tt">Tatar</lang>
<lang order="146" code="sl">Slovenian</lang> <lang code="tw">Twi</lang>
<lang order="147" code="sm">Samoan</lang> <lang code="ty">Tahitian</lang>
<lang order="148" code="sn">Shona</lang> <lang code="ug">Uighur; Uyghur</lang>
<lang order="149" code="so">Somali</lang> <lang code="uk">Ukrainian</lang>
<lang order="150" code="sq">Albanian</lang> <lang code="ur">Urdu</lang>
<lang order="151" code="sr">Serbian</lang> <lang code="uz">Uzbek</lang>
<lang order="152" code="ss">Swati</lang> <lang code="ve">Venda</lang>
<lang order="153" code="st">Sotho, Southern</lang> <lang code="vi">Vietnamese</lang>
<lang order="154" code="su">Sundanese</lang> <lang code="vo">Volapük</lang>
<lang order="155" code="sv">Swedish</lang> <lang code="wa">Walloon</lang>
<lang order="156" code="sw">Swahili</lang> <lang code="wo">Wolof</lang>
<lang order="157" code="ta">Tamil</lang> <lang code="xh">Xhosa</lang>
<lang order="158" code="te">Telugu</lang> <lang code="yi">Yiddish</lang>
<lang order="159" code="tg">Tajik</lang> <lang code="yo">Yoruba</lang>
<lang order="160" code="th">Thai</lang> <lang code="za">Zhuang; Chuang</lang>
<lang order="161" code="ti">Tigrinya</lang> <lang code="zh">Chinese</lang>
<lang order="162" code="tk">Turkmen</lang> <lang code="zu">Zulu</lang>
<lang order="163" code="tl">Tagalog</lang>
<lang order="164" code="tn">Tswana</lang>
<lang order="165" code="to">Tonga (Tonga Islands)</lang>
<lang order="166" code="tr">Turkish</lang>
<lang order="167" code="tr">Turkish</lang>
<lang order="168" code="ts">Tsonga</lang>
<lang order="169" code="tt">Tatar</lang>
<lang order="170" code="tw">Twi</lang>
<lang order="171" code="ty">Tahitian</lang>
<lang order="172" code="ug">Uighur; Uyghur</lang>
<lang order="173" code="uk">Ukrainian</lang>
<lang order="174" code="ur">Urdu</lang>
<lang order="175" code="uz">Uzbek</lang>
<lang order="176" code="ve">Venda</lang>
<lang order="177" code="vi">Vietnamese</lang>
<lang order="178" code="vo">Volapük</lang>
<lang order="179" code="wa">Walloon</lang>
<lang order="180" code="wo">Wolof</lang>
<lang order="181" code="xh">Xhosa</lang>
<lang order="182" code="yi">Yiddish</lang>
<lang order="183" code="yo">Yoruba</lang>
<lang order="184" code="za">Zhuang; Chuang</lang>
<lang order="185" code="zh">Chinese</lang>
<lang order="186" code="zu">Zulu</lang>
</ISO_639-1> </ISO_639-1>
@@ -238,216 +214,192 @@
The list is ordered for the European Commission needs. The list is ordered for the European Commission needs.
--> -->
<ISO_639-1_EU-Order> <ISO_639-1_EU-Order>
<lang order="1" code="bg">Bulgarian</lang> <lang code="bg">Bulgarian</lang>
<lang order="2" code="cs">Czech</lang> <lang code="cs">Czech</lang>
<lang order="3" code="da">Danish</lang> <lang code="da">Danish</lang>
<lang order="4" code="de">German</lang> <lang code="de">German</lang>
<lang order="5" code="et">Estonian</lang> <lang code="et">Estonian</lang>
<lang order="6" code="el">Greek</lang> <lang code="el">Greek</lang>
<lang order="7" code="en" default="true">English</lang> <lang code="en" default="true">English</lang>
<lang order="8" code="es">Spanish</lang> <lang code="es">Spanish</lang>
<lang order="9" code="fr">French</lang> <lang code="fr">French</lang>
<lang order="10" code="ga">Irish</lang> <lang code="ga">Irish</lang>
<lang order="11" code="it">Italian</lang> <lang code="it">Italian</lang>
<lang order="12" code="lv">Latvian</lang> <lang code="lv">Latvian</lang>
<lang order="13" code="lt">Lithuanian</lang> <lang code="lt">Lithuanian</lang>
<lang order="14" code="hu">Hungarian</lang> <lang code="hu">Hungarian</lang>
<lang order="15" code="mt">Maltese</lang> <lang code="mt">Maltese</lang>
<lang order="16" code="nl">Dutch</lang> <lang code="nl">Dutch</lang>
<lang order="17" code="pl">Polish</lang> <lang code="pl">Polish</lang>
<lang order="18" code="pt">Portuguese</lang> <lang code="pt">Portuguese</lang>
<lang order="19" code="ro">Romanian</lang> <lang code="ro">Romanian</lang>
<lang order="20" code="sk">Slovak</lang> <lang code="sk">Slovak</lang>
<lang order="21" code="sl">Slovenian</lang> <lang code="sl">Slovenian</lang>
<lang order="22" code="fi">Finnish</lang> <lang code="fi">Finnish</lang>
<lang order="23" code="sv">Swedish</lang> <lang code="sv">Swedish</lang>
<lang order="24" code="hr">Croatian</lang> <lang code="hr">Croatian</lang>
<lang order="25" code="tr">Turkish</lang> <lang code="tr">Turkish</lang>
<lang order="26" code="aa">Afar</lang> <lang code="aa">Afar</lang>
<lang order="27" code="ab">Abkhazian</lang> <lang code="ab">Abkhazian</lang>
<lang order="28" code="af">Afrikaans</lang> <lang code="af">Afrikaans</lang>
<lang order="29" code="ak">Akan</lang> <lang code="ak">Akan</lang>
<lang order="30" code="sq">Albanian</lang> <lang code="sq">Albanian</lang>
<lang order="31" code="am">Amharic</lang> <lang code="am">Amharic</lang>
<lang order="32" code="ar">Arabic</lang> <lang code="ar">Arabic</lang>
<lang order="33" code="an">Aragonese</lang> <lang code="an">Aragonese</lang>
<lang order="34" code="hy">Armenian</lang> <lang code="hy">Armenian</lang>
<lang order="35" code="as">Assamese</lang> <lang code="as">Assamese</lang>
<lang order="36" code="av">Avaric</lang> <lang code="av">Avaric</lang>
<lang order="37" code="ae">Avestan</lang> <lang code="ae">Avestan</lang>
<lang order="38" code="ay">Aymara</lang> <lang code="ay">Aymara</lang>
<lang order="39" code="az">Azerbaijani</lang> <lang code="az">Azerbaijani</lang>
<lang order="40" code="ba">Bashkir</lang> <lang code="ba">Bashkir</lang>
<lang order="41" code="bm">Bambara</lang> <lang code="bm">Bambara</lang>
<lang order="42" code="eu">Basque</lang> <lang code="eu">Basque</lang>
<lang order="43" code="be">Belarusian</lang> <lang code="be">Belarusian</lang>
<lang order="44" code="bn">Bengali</lang> <lang code="bn">Bengali</lang>
<lang order="45" code="bh">Bihari</lang> <lang code="bh">Bihari</lang>
<lang order="46" code="bi">Bislama</lang> <lang code="bi">Bislama</lang>
<lang order="47" code="bs">Bosnian</lang> <lang code="bs">Bosnian</lang>
<lang order="48" code="br">Breton</lang> <lang code="br">Breton</lang>
<lang order="49" code="my">Burmese</lang> <lang code="my">Burmese</lang>
<lang order="50" code="ca">Catalan; Valencian</lang> <lang code="ca">Catalan; Valencian</lang>
<lang order="51" code="ch">Chamorro</lang> <lang code="ch">Chamorro</lang>
<lang order="52" code="ce">Chechen</lang> <lang code="ce">Chechen</lang>
<lang order="53" code="zh">Chinese</lang> <lang code="zh">Chinese</lang>
<lang order="54" code="cu"> <lang code="cu">Slavic</lang>
Church Slavic; Old Slavonic; Church Slavonic; Old Bulgarian; Old Church Slavonic <lang code="cv">Chuvash</lang>
</lang> <lang code="kw">Cornish</lang>
<lang order="55" code="cv">Chuvash</lang> <lang code="co">Corsican</lang>
<lang order="56" code="kw">Cornish</lang> <lang code="cr">Cree</lang>
<lang order="57" code="co">Corsican</lang> <lang code="dv">Divehi; Dhivehi; Maldivian</lang>
<lang order="58" code="cr">Cree</lang> <lang code="dz">Dzongkha</lang>
<lang order="59" code="dv"> <lang code="eo">Esperanto</lang>
Divehi; Dhivehi; Maldivian <lang code="ee">Ewe</lang>
</lang> <lang code="fo">Faroese</lang>
<lang order="60" code="dz">Dzongkha</lang> <lang code="fj">Fijian</lang>
<lang order="61" code="eo">Esperanto</lang> <lang code="fy">Western Frisian</lang>
<lang order="62" code="ee">Ewe</lang> <lang code="ff">Fulah</lang>
<lang order="63" code="fo">Faroese</lang> <lang code="ka">Georgian</lang>
<lang order="64" code="fj">Fijian</lang> <lang code="gd">Gaelic</lang>
<lang order="65" code="fy">Western Frisian</lang> <lang code="gl">Galician</lang>
<lang order="66" code="ff">Fulah</lang> <lang code="gv">Manx</lang>
<lang order="67" code="ka">Georgian</lang> <lang code="gn">Guarani</lang>
<lang order="68" code="gd"> <lang code="gu">Gujarati</lang>
Gaelic; Scottish Gaelic <lang code="ht">Haitian</lang>
</lang> <lang code="ha">Hausa</lang>
<lang order="69" code="gl">Galician</lang> <lang code="he">Hebrew</lang>
<lang order="70" code="gv">Manx</lang> <lang code="hz">Herero</lang>
<lang order="71" code="gn">Guarani</lang> <lang code="hi">Hindi</lang>
<lang order="72" code="gu">Gujarati</lang> <lang code="ho">Hiri Motu</lang>
<lang order="73" code="ht"> <lang code="ig">Igbo</lang>
Haitian; Haitian Creole <lang code="is">Icelandic</lang>
</lang> <lang code="io">Ido</lang>
<lang order="74" code="ha">Hausa</lang> <lang code="ii">Sichuan Yi</lang>
<lang order="75" code="he">Hebrew</lang> <lang code="iu">Inuktitut</lang>
<lang order="76" code="hz">Herero</lang> <lang code="ie">Interlingue</lang>
<lang order="77" code="hi">Hindi</lang> <lang code="ia">Interlingua</lang>
<lang order="78" code="ho">Hiri Motu</lang> <lang code="id">Indonesian</lang>
<lang order="79" code="ig">Igbo</lang> <lang code="ik">Inupiaq</lang>
<lang order="80" code="is">Icelandic</lang> <lang code="jv">Javanese</lang>
<lang order="81" code="io">Ido</lang> <lang code="ja">Japanese</lang>
<lang order="82" code="ii">Sichuan Yi</lang> <lang code="kl">Kalaallisut; Greenlandic</lang>
<lang order="83" code="iu">Inuktitut</lang> <lang code="kn">Kannada</lang>
<lang order="84" code="ie">Interlingue</lang> <lang code="ks">Kashmiri</lang>
<lang order="85" code="ia"> <lang code="kr">Kanuri</lang>
Interlingua (International Auxiliary Language Association) <lang code="kk">Kazakh</lang>
</lang> <lang code="km">Khmer</lang>
<lang order="86" code="id">Indonesian</lang> <lang code="ki">Kikuyu; Gikuyu</lang>
<lang order="87" code="ik">Inupiaq</lang> <lang code="rw">Kinyarwanda</lang>
<lang order="88" code="jv">Javanese</lang> <lang code="ky">Kirghiz</lang>
<lang order="89" code="ja">Japanese</lang> <lang code="kv">Komi</lang>
<lang order="90" code="kl"> <lang code="kg">Kongo</lang>
Kalaallisut; Greenlandic <lang code="ko">Korean</lang>
</lang> <lang code="kj">Kuanyama; Kwanyama</lang>
<lang order="91" code="kn">Kannada</lang> <lang code="ku">Kurdish</lang>
<lang order="92" code="ks">Kashmiri</lang> <lang code="lo">Lao</lang>
<lang order="93" code="kr">Kanuri</lang> <lang code="la">Latin</lang>
<lang order="94" code="kk">Kazakh</lang> <lang code="li">Limburgan; Limburger; Limburgish</lang>
<lang order="95" code="km">Khmer</lang> <lang code="ln">Lingala</lang>
<lang order="96" code="ki">Kikuyu; Gikuyu</lang> <lang code="lb">Luxembourgish; Letzeburgesch</lang>
<lang order="97" code="rw">Kinyarwanda</lang> <lang code="lu">Luba-Katanga</lang>
<lang order="98" code="ky">Kirghiz</lang> <lang code="lg">Ganda</lang>
<lang order="99" code="kv">Komi</lang> <lang code="mk">Macedonian</lang>
<lang order="100" code="kg">Kongo</lang> <lang code="mh">Marshallese</lang>
<lang order="101" code="ko">Korean</lang> <lang code="ml">Malayalam</lang>
<lang order="102" code="kj">Kuanyama; Kwanyama</lang> <lang code="mi">Maori</lang>
<lang order="103" code="ku">Kurdish</lang> <lang code="mr">Marathi</lang>
<lang order="104" code="lo">Lao</lang> <lang code="ms">Malay</lang>
<lang order="105" code="la">Latin</lang> <lang code="mg">Malagasy</lang>
<lang order="106" code="li"> <lang code="mo">Moldavian</lang>
Limburgan; Limburger; Limburgish <lang code="mn">Mongolian</lang>
</lang> <lang code="na">Nauru</lang>
<lang order="107" code="ln">Lingala</lang> <lang code="nv">Navajo; Navaho</lang>
<lang order="108" code="lb"> <lang code="nr">South Ndebele</lang>
Luxembourgish; Letzeburgesch <lang code="nd">North Ndebele</lang>
</lang> <lang code="ng">Ndonga</lang>
<lang order="109" code="lu">Luba-Katanga</lang> <lang code="ne">Nepali</lang>
<lang order="110" code="lg">Ganda</lang> <lang code="nn">Norwegian Nynorsk</lang>
<lang order="111" code="mk">Macedonian</lang> <lang code="nb">Norvégien Bokmål</lang>
<lang order="112" code="mh">Marshallese</lang> <lang code="no">Norwegian</lang>
<lang order="113" code="ml">Malayalam</lang> <lang code="ny">Chichewa; Chewa; Nyanja</lang>
<lang order="114" code="mi">Maori</lang> <lang code="oc">Occitan (post 1500); Provençal</lang>
<lang order="115" code="mr">Marathi</lang> <lang code="oj">Ojibwa</lang>
<lang order="116" code="ms">Malay</lang> <lang code="or">Oriya</lang>
<lang order="117" code="mg">Malagasy</lang> <lang code="om">Oromo</lang>
<lang order="118" code="mo">Moldavian</lang> <lang code="os">Ossetian; Ossetic</lang>
<lang order="119" code="mn">Mongolian</lang> <lang code="pa">Panjabi; Punjabi</lang>
<lang order="120" code="na">Nauru</lang> <lang code="fa">Persian</lang>
<lang order="121" code="nv">Navajo; Navaho</lang> <lang code="pi">Pali</lang>
<lang order="122" code="nr"> <lang code="ps">Pushto</lang>
Ndebele, South; South Ndebele <lang code="qu">Quechua</lang>
</lang> <lang code="rm">Raeto-Romance</lang>
<lang order="123" code="nd"> <lang code="rn">Rundi</lang>
Ndebele, North; North Ndebele <lang code="ru">Russian</lang>
</lang> <lang code="sg">Sango</lang>
<lang order="124" code="ng">Ndonga</lang> <lang code="sa">Sanskrit</lang>
<lang order="125" code="ne">Nepali</lang> <lang code="sr">Serbian</lang>
<lang order="126" code="nn">Norwegian Nynorsk</lang> <lang code="si">Sinhala; Sinhalese</lang>
<lang order="127" code="nb">Norvégien Bokmål</lang> <lang code="se">Northern Sami</lang>
<lang order="128" code="no">Norwegian</lang> <lang code="sm">Samoan</lang>
<lang order="129" code="ny"> <lang code="sn">Shona</lang>
Chichewa; Chewa; Nyanja <lang code="sd">Sindhi</lang>
</lang> <lang code="so">Somali</lang>
<lang order="130" code="oc"> <lang code="st">Sotho, Southern</lang>
Occitan (post 1500); Provençal <lang code="sc">Sardinian</lang>
</lang> <lang code="ss">Swati</lang>
<lang order="131" code="oj">Ojibwa</lang> <lang code="su">Sundanese</lang>
<lang order="132" code="or">Oriya</lang> <lang code="sw">Swahili</lang>
<lang order="133" code="om">Oromo</lang> <lang code="ty">Tahitian</lang>
<lang order="134" code="os">Ossetian; Ossetic</lang> <lang code="ta">Tamil</lang>
<lang order="135" code="pa">Panjabi; Punjabi</lang> <lang code="tt">Tatar</lang>
<lang order="136" code="fa">Persian</lang> <lang code="te">Telugu</lang>
<lang order="137" code="pi">Pali</lang> <lang code="tg">Tajik</lang>
<lang order="138" code="ps">Pushto</lang> <lang code="tl">Tagalog</lang>
<lang order="139" code="qu">Quechua</lang> <lang code="th">Thai</lang>
<lang order="140" code="rm">Raeto-Romance</lang> <lang code="bo">Tibetan</lang>
<lang order="141" code="rn">Rundi</lang> <lang code="ti">Tigrinya</lang>
<lang order="142" code="ru">Russian</lang> <lang code="to">Tonga (Tonga Islands)</lang>
<lang order="143" code="sg">Sango</lang> <lang code="tn">Tswana</lang>
<lang order="144" code="sa">Sanskrit</lang> <lang code="ts">Tsonga</lang>
<lang order="145" code="sr">Serbian</lang> <lang code="tk">Turkmen</lang>
<lang order="146" code="si">Sinhala; Sinhalese</lang> <lang code="tr">Turkish</lang>
<lang order="147" code="se">Northern Sami</lang> <lang code="tw">Twi</lang>
<lang order="148" code="sm">Samoan</lang> <lang code="ug">Uighur; Uyghur</lang>
<lang order="149" code="sn">Shona</lang> <lang code="uk">Ukrainian</lang>
<lang order="150" code="sd">Sindhi</lang> <lang code="ur">Urdu</lang>
<lang order="151" code="so">Somali</lang> <lang code="uz">Uzbek</lang>
<lang order="152" code="st">Sotho, Southern</lang> <lang code="ve">Venda</lang>
<lang order="153" code="sc">Sardinian</lang> <lang code="vi">Vietnamese</lang>
<lang order="154" code="ss">Swati</lang> <lang code="vo">Volapük</lang>
<lang order="155" code="su">Sundanese</lang> <lang code="cy">Welsh</lang>
<lang order="156" code="sw">Swahili</lang> <lang code="wa">Walloon</lang>
<lang order="157" code="ty">Tahitian</lang> <lang code="wo">Wolof</lang>
<lang order="158" code="ta">Tamil</lang> <lang code="xh">Xhosa</lang>
<lang order="159" code="tt">Tatar</lang> <lang code="yi">Yiddish</lang>
<lang order="160" code="te">Telugu</lang> <lang code="yo">Yoruba</lang>
<lang order="161" code="tg">Tajik</lang> <lang code="za">Zhuang; Chuang</lang>
<lang order="162" code="tl">Tagalog</lang> <lang code="zu">Zulu</lang>
<lang order="163" code="th">Thai</lang>
<lang order="164" code="bo">Tibetan</lang>
<lang order="165" code="ti">Tigrinya</lang>
<lang order="166" code="to">Tonga (Tonga Islands)</lang>
<lang order="167" code="tn">Tswana</lang>
<lang order="168" code="ts">Tsonga</lang>
<lang order="169" code="tk">Turkmen</lang>
<lang order="170" code="tr">Turkish</lang>
<lang order="171" code="tw">Twi</lang>
<lang order="172" code="ug">Uighur; Uyghur</lang>
<lang order="173" code="uk">Ukrainian</lang>
<lang order="174" code="ur">Urdu</lang>
<lang order="175" code="uz">Uzbek</lang>
<lang order="176" code="ve">Venda</lang>
<lang order="177" code="vi">Vietnamese</lang>
<lang order="178" code="vo">Volapük</lang>
<lang order="179" code="cy">Welsh</lang>
<lang order="180" code="wa">Walloon</lang>
<lang order="181" code="wo">Wolof</lang>
<lang order="182" code="xh">Xhosa</lang>
<lang order="183" code="yi">Yiddish</lang>
<lang order="184" code="yo">Yoruba</lang>
<lang order="185" code="za">Zhuang; Chuang</lang>
<lang order="186" code="zu">Zulu</lang>
</ISO_639-1_EU-Order> </ISO_639-1_EU-Order>
</config> </config>
</alfresco-config> </alfresco-config>

View File

@@ -37,7 +37,6 @@ import org.alfresco.model.ContentModel;
import org.alfresco.repo.search.QueryParameterDefImpl; import org.alfresco.repo.search.QueryParameterDefImpl;
import org.alfresco.service.cmr.dictionary.DataTypeDefinition; import org.alfresco.service.cmr.dictionary.DataTypeDefinition;
import org.alfresco.service.cmr.dictionary.DictionaryService; import org.alfresco.service.cmr.dictionary.DictionaryService;
import org.alfresco.service.cmr.ml.MultilingualContentService;
import org.alfresco.service.cmr.model.FileExistsException; import org.alfresco.service.cmr.model.FileExistsException;
import org.alfresco.service.cmr.model.FileFolderService; import org.alfresco.service.cmr.model.FileFolderService;
import org.alfresco.service.cmr.model.FileInfo; import org.alfresco.service.cmr.model.FileInfo;

View File

@@ -59,7 +59,6 @@ public class ContentFilterLanguagesMap implements ContentFilterLanguagesService
private static final String DEFAULT_LANGUAGE_LIST_STANDARD = "ISO 639-1"; private static final String DEFAULT_LANGUAGE_LIST_STANDARD = "ISO 639-1";
private static final String ATTR_CODE = "code"; private static final String ATTR_CODE = "code";
private static final String ATTR_ORDER = "order";
private static final String ATTR_DEFAULT = "default"; private static final String ATTR_DEFAULT = "default";
private static final Log logger = LogFactory.getLog(ContentFilterLanguagesMap.class); private static final Log logger = LogFactory.getLog(ContentFilterLanguagesMap.class);
@@ -210,11 +209,10 @@ public class ContentFilterLanguagesMap implements ContentFilterLanguagesService
for (ConfigElement langElem : languages) for (ConfigElement langElem : languages)
{ {
String code = convertToOldISOCode(langElem.getAttribute(ATTR_CODE)); String code = convertToOldISOCode(langElem.getAttribute(ATTR_CODE));
String order = langElem.getAttribute(ATTR_ORDER);
String value = langElem.getValue(); String value = langElem.getValue();
String def = langElem.getAttribute(ATTR_DEFAULT); String def = langElem.getAttribute(ATTR_DEFAULT);
orderedLangCodes.add(Integer.parseInt(order) - 1, code); orderedLangCodes.add(code);
languagesByCode.put(code, value); languagesByCode.put(code, value);

View File

@@ -39,6 +39,7 @@ import org.alfresco.repo.version.VersionModel;
import org.alfresco.service.cmr.ml.ContentFilterLanguagesService; import org.alfresco.service.cmr.ml.ContentFilterLanguagesService;
import org.alfresco.service.cmr.ml.MultilingualContentService; import org.alfresco.service.cmr.ml.MultilingualContentService;
import org.alfresco.service.cmr.model.FileFolderService; import org.alfresco.service.cmr.model.FileFolderService;
import org.alfresco.service.cmr.model.FileInfo;
import org.alfresco.service.cmr.repository.ChildAssociationRef; import org.alfresco.service.cmr.repository.ChildAssociationRef;
import org.alfresco.service.cmr.repository.ContentData; import org.alfresco.service.cmr.repository.ContentData;
import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeRef;
@@ -674,31 +675,75 @@ public class MultilingualContentServiceImpl implements MultilingualContentServic
*/ */
public NodeRef addEmptyTranslation(NodeRef translationOfNodeRef, String name, Locale locale) public NodeRef addEmptyTranslation(NodeRef translationOfNodeRef, String name, Locale locale)
{ {
// any node used as reference
NodeRef anyTranslation;
// the empty document to create
NodeRef newTranslationNodeRef = null;
QName typeQName = nodeService.getType(translationOfNodeRef); QName typeQName = nodeService.getType(translationOfNodeRef);
if (typeQName.equals(ContentModel.TYPE_MULTILINGUAL_CONTAINER)) boolean hasMLAspect = nodeService.hasAspect(translationOfNodeRef, ContentModel.ASPECT_MULTILINGUAL_DOCUMENT);
if (hasMLAspect || typeQName.equals(ContentModel.TYPE_MULTILINGUAL_CONTAINER))
{ {
// Set the ml container ans get the pivot // Get the pivot translation
anyTranslation = getPivotTranslation(translationOfNodeRef); NodeRef pivotTranslationNodeRef = getPivotTranslation(translationOfNodeRef);
} if (pivotTranslationNodeRef != null)
else if(nodeService.hasAspect(translationOfNodeRef, ContentModel.ASPECT_MULTILINGUAL_DOCUMENT)) {
{ // We found a pivot translation, so use it
anyTranslation = translationOfNodeRef; translationOfNodeRef = pivotTranslationNodeRef;
}
else
{
// We use the given translation, provided it is an actual translation
if (!hasMLAspect)
{
throw new IllegalArgumentException(
"The node provided is not associated with a pivot translation " +
"and is not in itself a translation: \n" +
" Translation: " + translationOfNodeRef + "\n" +
" Locale: " + locale);
}
}
} }
else else
{ {
throw new IllegalArgumentException( throw new IllegalArgumentException(
"Node must have aspect " + ContentModel.ASPECT_MULTILINGUAL_DOCUMENT + " applied or be a " + ContentModel.TYPE_MULTILINGUAL_CONTAINER); "Node must have aspect " + ContentModel.ASPECT_MULTILINGUAL_DOCUMENT +
" or be a " + ContentModel.TYPE_MULTILINGUAL_CONTAINER + ": \n" +
" Translation: " + translationOfNodeRef + "\n" +
" Locale: " + locale);
}
FileInfo translationOfFileInfo = fileFolderService.getFileInfo(translationOfNodeRef);
String translationOfName = translationOfFileInfo.getName();
// If name is null, supply one
if (name == null)
{
name = translationOfName;
}
// If there is a name clash, add the locale to the main portion of the filename
if (name.equals(translationOfName))
{
String localeStr = locale.toString();
if (localeStr.endsWith("_"))
{
localeStr = localeStr.substring(0, localeStr.length() - 1);
}
String rawName;
String extension;
int index = name.lastIndexOf('.');
if (index > 0)
{
rawName = name.substring(0, index);
extension = "." + name.substring(index + 1);
}
else
{
rawName = name;
extension = ""; // No extension
}
name = rawName + "_" + localeStr + extension;
} }
// Create the document in the space of the node of reference // Create the document in the space of the node of reference
NodeRef parentNodeRef = nodeService.getPrimaryParent(anyTranslation).getParentRef(); NodeRef parentNodeRef = nodeService.getPrimaryParent(translationOfNodeRef).getParentRef();
newTranslationNodeRef = fileFolderService.create( // Create the empty translation
NodeRef newTranslationNodeRef = fileFolderService.create(
parentNodeRef, parentNodeRef,
name, name,
ContentModel.TYPE_CONTENT).getNodeRef(); ContentModel.TYPE_CONTENT).getNodeRef();
@@ -706,24 +751,19 @@ public class MultilingualContentServiceImpl implements MultilingualContentServic
// add the translation to the container // add the translation to the container
addTranslation(newTranslationNodeRef, translationOfNodeRef, locale); addTranslation(newTranslationNodeRef, translationOfNodeRef, locale);
// Although the content is spoofed from the pivot translation, it isn't done for all services
// TODO: Fix http://issues.alfresco.com/browse/AR-1487
ContentData translationOfContentData = (ContentData) nodeService.getProperty(translationOfNodeRef, ContentModel.PROP_CONTENT);
if (translationOfContentData != null)
{
nodeService.setProperty(newTranslationNodeRef, ContentModel.PROP_CONTENT, translationOfContentData);
}
// set it empty // set it empty
nodeService.addAspect(newTranslationNodeRef, ContentModel.ASPECT_MULTILINGUAL_EMPTY_TRANSLATION, null); nodeService.addAspect(newTranslationNodeRef, ContentModel.ASPECT_MULTILINGUAL_EMPTY_TRANSLATION, null);
// Initially, the file should be temporary. This will be changed as soon as some content is added. // Initially, the file should be temporary. This will be changed as soon as some content is added.
nodeService.addAspect(newTranslationNodeRef, ContentModel.ASPECT_TEMPORARY, null); nodeService.addAspect(newTranslationNodeRef, ContentModel.ASPECT_TEMPORARY, null);
// get the extension and set the ContentData property with an null URL.
// TODO: Mimetype must be correct, i.e. taken from the original
String extension = "";
int dotIdx;
if((dotIdx = name.lastIndexOf(".")) > -1 )
{
extension = name.substring(dotIdx);
}
nodeService.setProperty(newTranslationNodeRef, ContentModel.PROP_CONTENT,
new ContentData(null, extension, 0, "UTF-8", locale));
if (logger.isDebugEnabled()) if (logger.isDebugEnabled())
{ {
logger.debug("Added an empty translation: \n" + logger.debug("Added an empty translation: \n" +

View File

@@ -117,10 +117,16 @@ public abstract class AbstractMultilingualTestCases extends TestCase
} }
protected NodeRef createContent() protected NodeRef createContent()
{
String name = "" + System.currentTimeMillis();
return createContent(name);
}
protected NodeRef createContent(String name)
{ {
NodeRef contentNodeRef = fileFolderService.create( NodeRef contentNodeRef = fileFolderService.create(
folderNodeRef, folderNodeRef,
"" + System.currentTimeMillis(), name,
ContentModel.TYPE_CONTENT).getNodeRef(); ContentModel.TYPE_CONTENT).getNodeRef();
// add some content // add some content
ContentWriter contentWriter = fileFolderService.getWriter(contentNodeRef); ContentWriter contentWriter = fileFolderService.getWriter(contentNodeRef);

View File

@@ -30,10 +30,11 @@ import java.util.List;
import java.util.Locale; import java.util.Locale;
import java.util.Map; import java.util.Map;
import org.alfresco.i18n.I18NUtil; import org.alfresco.i18n.I18NUtil;
import org.alfresco.model.ContentModel; import org.alfresco.model.ContentModel;
import org.alfresco.service.cmr.repository.ContentData;
import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.datatype.DefaultTypeConverter;
import org.alfresco.service.cmr.version.Version; import org.alfresco.service.cmr.version.Version;
import org.alfresco.service.cmr.version.VersionHistory; import org.alfresco.service.cmr.version.VersionHistory;
@@ -187,17 +188,57 @@ public class MultilingualContentServiceImplTest extends AbstractMultilingualTest
@SuppressWarnings("unused") @SuppressWarnings("unused")
public void testCreateEmptyTranslation() throws Exception public void testCreateEmptyTranslation() throws Exception
{ {
NodeRef chineseContentNodeRef = createContent(); NodeRef chineseContentNodeRef = createContent("Document.txt");
NodeRef mlContainerNodeRef = multilingualContentService.makeTranslation(chineseContentNodeRef, Locale.CHINESE); NodeRef mlContainerNodeRef = multilingualContentService.makeTranslation(chineseContentNodeRef, Locale.CHINESE);
NodeRef empty = multilingualContentService.addEmptyTranslation(chineseContentNodeRef, "" + System.currentTimeMillis(), Locale.CANADA); // This should use the pivot language
NodeRef emptyNodeRef = multilingualContentService.addEmptyTranslation(mlContainerNodeRef, "Document.txt", Locale.CANADA);
// Ensure that the empty translation is not null // Ensure that the empty translation is not null
assertNotNull("The creation of the empty document failed ", empty); assertNotNull("The creation of the empty document failed ", emptyNodeRef);
// Ensure that the empty translation has the mlDocument aspect // Ensure that the empty translation has the mlDocument aspect
assertTrue("The empty document must have the mlDocument aspect", nodeService.hasAspect(empty, ContentModel.ASPECT_MULTILINGUAL_DOCUMENT)); assertTrue("The empty document must have the mlDocument aspect",
nodeService.hasAspect(emptyNodeRef, ContentModel.ASPECT_MULTILINGUAL_DOCUMENT));
// Ensure that the empty translation has the mlEmptyTranslation aspect // Ensure that the empty translation has the mlEmptyTranslation aspect
assertTrue("The empty document must have the mlEmptyTranslation aspect", nodeService.hasAspect(empty, ContentModel.ASPECT_MULTILINGUAL_EMPTY_TRANSLATION)); assertTrue("The empty document must have the mlEmptyTranslation aspect",
nodeService.hasAspect(emptyNodeRef, ContentModel.ASPECT_MULTILINGUAL_EMPTY_TRANSLATION));
// Check that the auto renaming worked
String emptyName = DefaultTypeConverter.INSTANCE.convert(String.class,
nodeService.getProperty(emptyNodeRef, ContentModel.PROP_NAME));
assertEquals("Empty auto-rename didn't work for same-named document", "Document_en_CA.txt", emptyName);
// Check that the content is identical
ContentData chineseContentData = fileFolderService.getReader(chineseContentNodeRef).getContentData();
ContentData emptyContentData = fileFolderService.getReader(emptyNodeRef).getContentData();
}
public void testCreateEmptyTranslationNames() throws Exception
{
NodeRef chineseContentNodeRef = createContent("Document.txt");
NodeRef mlContainerNodeRef = multilingualContentService.makeTranslation(chineseContentNodeRef, Locale.CHINESE);
NodeRef koreanContentNodeRef = createContent("Document_ko.txt");
multilingualContentService.addTranslation(koreanContentNodeRef, chineseContentNodeRef, Locale.KOREAN);
// Create with a null name, and off a non-pivot just to be sure
NodeRef nullNameNodeRef = multilingualContentService.addEmptyTranslation(
koreanContentNodeRef,
null,
Locale.CANADA);
String nullName = fileFolderService.getFileInfo(nullNameNodeRef).getName();
assertEquals("Empty translation name not generated correctly.", "Document_en_CA.txt", nullName);
// Create with the same name
NodeRef sameNameNodeRef = multilingualContentService.addEmptyTranslation(
mlContainerNodeRef,
"Document.txt",
Locale.CANADA_FRENCH);
String sameName = fileFolderService.getFileInfo(sameNameNodeRef).getName();
assertEquals("Empty translation name not generated correctly.", "Document_fr_CA.txt", sameName);
// Create with a different name
NodeRef differentNameNodeRef = multilingualContentService.addEmptyTranslation(
mlContainerNodeRef,
"Document2.txt",
Locale.JAPANESE);
String differentName = fileFolderService.getFileInfo(differentNameNodeRef).getName();
assertEquals("Empty translation name not generated correctly.", "Document2.txt", differentName);
} }
@SuppressWarnings("unused") @SuppressWarnings("unused")

View File

@@ -46,7 +46,6 @@ import org.alfresco.service.cmr.repository.ChildAssociationRef;
import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.NodeService; import org.alfresco.service.cmr.repository.NodeService;
import org.alfresco.service.cmr.repository.StoreRef; import org.alfresco.service.cmr.repository.StoreRef;
import org.alfresco.service.cmr.security.AccessStatus;
import org.alfresco.service.cmr.security.AuthenticationService; import org.alfresco.service.cmr.security.AuthenticationService;
import org.alfresco.service.cmr.security.OwnableService; import org.alfresco.service.cmr.security.OwnableService;
import org.alfresco.service.cmr.security.PermissionService; import org.alfresco.service.cmr.security.PermissionService;

View File

@@ -164,12 +164,20 @@ public interface MultilingualContentService
NodeRef getPivotTranslation(NodeRef nodeRef); NodeRef getPivotTranslation(NodeRef nodeRef);
/** /**
* Make a empty translation out of an existing document. The necessary translation structures will be created * Make a empty translation out of an existing pivot translation. The given translation or
* as necessary. * container will be used to find the pivot translation. Failing this, the given translation
* will be used directly. If no name is provided or if the name is the same as the original's
* then the locale will be added to the main portion of the filename, i.e.
* <pre>
* Document.txt --> Document_fr.txt
* </pre>
* <p/>
* The necessary translation structures will be created as necessary.
* *
* @param translationOfNodeRef An existing <b>cm:mlDocument</b> or <b>cm:mlContainer</b> * @param translationOfNodeRef An existing <b>cm:mlDocument</b> or <b>cm:mlContainer</b>
* @param name The name of the translation to create * @param name The name of the file to create, or <tt>null</tt> to use
* @return Returns the new created <b>cm:mlEmptyTranslation</b> * the default naming convention.
* @return Returns the new created <b>cm:mlEmptyTranslation</b>
*/ */
@Auditable(key = Auditable.Key.ARG_0, parameters = {"translationOfNodeRef", "name", "locale"}) @Auditable(key = Auditable.Key.ARG_0, parameters = {"translationOfNodeRef", "name", "locale"})
NodeRef addEmptyTranslation(NodeRef translationOfNodeRef, String name, Locale locale); NodeRef addEmptyTranslation(NodeRef translationOfNodeRef, String name, Locale locale);