summaryrefslogtreecommitdiff
path: root/i18npool
diff options
context:
space:
mode:
Diffstat (limited to 'i18npool')
-rw-r--r--i18npool/inc/i18npool/lang.h12
-rw-r--r--i18npool/source/isolang/isolang.cxx9
-rwxr-xr-xi18npool/source/isolang/langid.pl4
-rw-r--r--i18npool/source/localedata/data/localedata_others.map17
-rw-r--r--i18npool/source/localedata/data/makefile.mk1
-rw-r--r--i18npool/source/localedata/data/pt_AO.xml373
-rw-r--r--i18npool/source/localedata/localedata.cxx3
-rw-r--r--i18npool/source/transliteration/transliterationImpl.cxx15
8 files changed, 423 insertions, 11 deletions
diff --git a/i18npool/inc/i18npool/lang.h b/i18npool/inc/i18npool/lang.h
index 5d8066cc4e31..4f21704875fb 100644
--- a/i18npool/inc/i18npool/lang.h
+++ b/i18npool/inc/i18npool/lang.h
@@ -522,8 +522,16 @@ typedef unsigned short LanguageType;
#define LANGUAGE_USER_LOJBAN 0x0658 /* no locale */
#define LANGUAGE_USER_KABYLE 0x0659
#define LANGUAGE_USER_HAITIAN 0x065A
-#define LANGUAGE_USER_MANX 0x065B
-
+#define LANGUAGE_USER_BEEMBE 0x065B
+#define LANGUAGE_USER_BEKWEL 0x065C
+#define LANGUAGE_USER_KITUBA 0x065D
+#define LANGUAGE_USER_LARI 0x065E
+#define LANGUAGE_USER_MBOCHI 0x065F
+#define LANGUAGE_USER_TEKE_IBALI 0x0660
+#define LANGUAGE_USER_TEKE_TYEE 0x0661
+#define LANGUAGE_USER_VILI 0x0662
+#define LANGUAGE_USER_PORTUGUESE_ANGOLA 0x8016 /* makeLangID( 0x20, getPrimaryLanguage( LANGUAGE_PORTUGUESE)) */
+#define LANGUAGE_USER_MANX 0x0663
#endif /* INCLUDED_I18NPOOL_LANG_H */
diff --git a/i18npool/source/isolang/isolang.cxx b/i18npool/source/isolang/isolang.cxx
index 3e64f791ded5..f639df661073 100644
--- a/i18npool/source/isolang/isolang.cxx
+++ b/i18npool/source/isolang/isolang.cxx
@@ -470,6 +470,15 @@ static MsLangId::IsoLangEntry const aImplIsoLangEntries[] =
{ LANGUAGE_USER_KABYLE, "kab", "DZ" },
{ LANGUAGE_USER_HAITIAN, "ht", "HT" },
{ LANGUAGE_FRENCH_HAITI, "fr", "HT" },
+ { LANGUAGE_USER_BEEMBE, "beq", "CG" },
+ { LANGUAGE_USER_BEKWEL, "bkw", "CG" },
+ { LANGUAGE_USER_KITUBA, "mkw", "CG" },
+ { LANGUAGE_USER_LARI, "ldi", "CG" },
+ { LANGUAGE_USER_MBOCHI, "mdw", "CG" },
+ { LANGUAGE_USER_TEKE_IBALI, "tek", "CG" },
+ { LANGUAGE_USER_TEKE_TYEE, "tyx", "CG" },
+ { LANGUAGE_USER_VILI, "vif", "CG" },
+ { LANGUAGE_USER_PORTUGUESE_ANGOLA, "pt", "AO" },
{ LANGUAGE_USER_MANX, "gv", "GB" },
{ LANGUAGE_NONE, "zxx", "" }, // added to ISO 639-2 on 2006-01-11: Used to declare the absence of linguistic information
{ LANGUAGE_DONTKNOW, "", "" } // marks end of table
diff --git a/i18npool/source/isolang/langid.pl b/i18npool/source/isolang/langid.pl
index 8035178b7bb5..9787309e20d9 100755
--- a/i18npool/source/isolang/langid.pl
+++ b/i18npool/source/isolang/langid.pl
@@ -53,13 +53,13 @@ sub Usage()
"langtab.src, a generic string match of the listbox entries will be tried.\n\n",
"Numeric values of LangID,primarylanguage,sublanguage can be given\n",
- "decimal, hexagesimal (leading 0x), octal (leading 0) or binary (leading 0b).\n",
+ "decimal, hexadecimal (leading 0x), octal (leading 0) or binary (leading 0b).\n",
"The exact language_define of an exact match will be used in remaining lookups.\n\n",
"A language-country pair will lookup a xx-YY mapping from isolang.cxx,\n",
"for example: 'en-US' or 'de-' or '-CH',\n",
"xx and YY can be given case insensitive, will be lowered-uppered internally,\n",
- "and xx and YY themselfs may be regular expressions.\n",
+ "and xx and YY themselves may be regular expressions.\n",
"Also here a list of matches will be processed.\n\n",
"If option --single is given, only the first match will be processed.\n\n";
diff --git a/i18npool/source/localedata/data/localedata_others.map b/i18npool/source/localedata/data/localedata_others.map
index 5e9d81eaf31c..de7a2312bfb9 100644
--- a/i18npool/source/localedata/data/localedata_others.map
+++ b/i18npool/source/localedata/data/localedata_others.map
@@ -57,6 +57,7 @@ getAllCalendars_om_ET;
getAllCalendars_or_IN;
getAllCalendars_pa_IN;
getAllCalendars_plt_MG;
+getAllCalendars_pt_AO;
getAllCalendars_rw_RW;
getAllCalendars_sg_CF;
getAllCalendars_shs_CA;
@@ -142,6 +143,7 @@ getAllCurrencies_om_ET;
getAllCurrencies_or_IN;
getAllCurrencies_pa_IN;
getAllCurrencies_plt_MG;
+getAllCurrencies_pt_AO;
getAllCurrencies_rw_RW;
getAllCurrencies_sg_CF;
getAllCurrencies_shs_CA;
@@ -227,6 +229,7 @@ getAllFormats0_om_ET;
getAllFormats0_or_IN;
getAllFormats0_pa_IN;
getAllFormats0_plt_MG;
+getAllFormats0_pt_AO;
getAllFormats0_rw_RW;
getAllFormats0_sg_CF;
getAllFormats0_shs_CA;
@@ -312,6 +315,7 @@ getBreakIteratorRules_om_ET;
getBreakIteratorRules_or_IN;
getBreakIteratorRules_pa_IN;
getBreakIteratorRules_plt_MG;
+getBreakIteratorRules_pt_AO;
getBreakIteratorRules_rw_RW;
getBreakIteratorRules_sg_CF;
getBreakIteratorRules_shs_CA;
@@ -397,6 +401,7 @@ getCollationOptions_om_ET;
getCollationOptions_or_IN;
getCollationOptions_pa_IN;
getCollationOptions_plt_MG;
+getCollationOptions_pt_AO;
getCollationOptions_rw_RW;
getCollationOptions_sg_CF;
getCollationOptions_shs_CA;
@@ -482,6 +487,7 @@ getCollatorImplementation_om_ET;
getCollatorImplementation_or_IN;
getCollatorImplementation_pa_IN;
getCollatorImplementation_plt_MG;
+getCollatorImplementation_pt_AO;
getCollatorImplementation_rw_RW;
getCollatorImplementation_sg_CF;
getCollatorImplementation_shs_CA;
@@ -567,6 +573,7 @@ getContinuousNumberingLevels_om_ET;
getContinuousNumberingLevels_or_IN;
getContinuousNumberingLevels_pa_IN;
getContinuousNumberingLevels_plt_MG;
+getContinuousNumberingLevels_pt_AO;
getContinuousNumberingLevels_rw_RW;
getContinuousNumberingLevels_sg_CF;
getContinuousNumberingLevels_shs_CA;
@@ -652,6 +659,7 @@ getFollowPageWords_om_ET;
getFollowPageWords_or_IN;
getFollowPageWords_pa_IN;
getFollowPageWords_plt_MG;
+getFollowPageWords_pt_AO;
getFollowPageWords_rw_RW;
getFollowPageWords_sg_CF;
getFollowPageWords_shs_CA;
@@ -737,6 +745,7 @@ getForbiddenCharacters_om_ET;
getForbiddenCharacters_or_IN;
getForbiddenCharacters_pa_IN;
getForbiddenCharacters_plt_MG;
+getForbiddenCharacters_pt_AO;
getForbiddenCharacters_rw_RW;
getForbiddenCharacters_sg_CF;
getForbiddenCharacters_shs_CA;
@@ -822,6 +831,7 @@ getIndexAlgorithm_om_ET;
getIndexAlgorithm_or_IN;
getIndexAlgorithm_pa_IN;
getIndexAlgorithm_plt_MG;
+getIndexAlgorithm_pt_AO;
getIndexAlgorithm_rw_RW;
getIndexAlgorithm_sg_CF;
getIndexAlgorithm_shs_CA;
@@ -907,6 +917,7 @@ getLCInfo_om_ET;
getLCInfo_or_IN;
getLCInfo_pa_IN;
getLCInfo_plt_MG;
+getLCInfo_pt_AO;
getLCInfo_rw_RW;
getLCInfo_sg_CF;
getLCInfo_shs_CA;
@@ -992,6 +1003,7 @@ getLocaleItem_om_ET;
getLocaleItem_or_IN;
getLocaleItem_pa_IN;
getLocaleItem_plt_MG;
+getLocaleItem_pt_AO;
getLocaleItem_rw_RW;
getLocaleItem_sg_CF;
getLocaleItem_shs_CA;
@@ -1077,6 +1089,7 @@ getOutlineNumberingLevels_om_ET;
getOutlineNumberingLevels_or_IN;
getOutlineNumberingLevels_pa_IN;
getOutlineNumberingLevels_plt_MG;
+getOutlineNumberingLevels_pt_AO;
getOutlineNumberingLevels_rw_RW;
getOutlineNumberingLevels_sg_CF;
getOutlineNumberingLevels_shs_CA;
@@ -1162,6 +1175,7 @@ getReservedWords_om_ET;
getReservedWords_or_IN;
getReservedWords_pa_IN;
getReservedWords_plt_MG;
+getReservedWords_pt_AO;
getReservedWords_rw_RW;
getReservedWords_sg_CF;
getReservedWords_shs_CA;
@@ -1247,6 +1261,7 @@ getSearchOptions_om_ET;
getSearchOptions_or_IN;
getSearchOptions_pa_IN;
getSearchOptions_plt_MG;
+getSearchOptions_pt_AO;
getSearchOptions_rw_RW;
getSearchOptions_sg_CF;
getSearchOptions_shs_CA;
@@ -1332,6 +1347,7 @@ getTransliterations_om_ET;
getTransliterations_or_IN;
getTransliterations_pa_IN;
getTransliterations_plt_MG;
+getTransliterations_pt_AO;
getTransliterations_rw_RW;
getTransliterations_sg_CF;
getTransliterations_shs_CA;
@@ -1417,6 +1433,7 @@ getUnicodeScripts_om_ET;
getUnicodeScripts_or_IN;
getUnicodeScripts_pa_IN;
getUnicodeScripts_plt_MG;
+getUnicodeScripts_pt_AO;
getUnicodeScripts_rw_RW;
getUnicodeScripts_sg_CF;
getUnicodeScripts_shs_CA;
diff --git a/i18npool/source/localedata/data/makefile.mk b/i18npool/source/localedata/data/makefile.mk
index ee46865afe10..df038d445ead 100644
--- a/i18npool/source/localedata/data/makefile.mk
+++ b/i18npool/source/localedata/data/makefile.mk
@@ -279,6 +279,7 @@ SHL4OBJS= \
$(SLO)$/localedata_or_IN.obj \
$(SLO)$/localedata_pa_IN.obj \
$(SLO)$/localedata_plt_MG.obj \
+ $(SLO)$/localedata_pt_AO.obj \
$(SLO)$/localedata_rw_RW.obj \
$(SLO)$/localedata_sg_CF.obj \
$(SLO)$/localedata_shs_CA.obj \
diff --git a/i18npool/source/localedata/data/pt_AO.xml b/i18npool/source/localedata/data/pt_AO.xml
new file mode 100644
index 000000000000..f1bb92becf05
--- /dev/null
+++ b/i18npool/source/localedata/data/pt_AO.xml
@@ -0,0 +1,373 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE Locale SYSTEM 'locale.dtd'>
+<Locale versionDTD="2.0.3" allowUpdateFromCLDR="no" version="1.2">
+<LC_INFO>
+<Language>
+<LangID>pt</LangID>
+<DefaultName>Portuguese</DefaultName>
+</Language>
+<Country>
+<CountryID>AO</CountryID>
+<DefaultName>Angola</DefaultName>
+</Country>
+</LC_INFO>
+<LC_CTYPE unoid="generic">
+<Separators>
+<DateSeparator>-</DateSeparator>
+<ThousandSeparator>.</ThousandSeparator>
+<DecimalSeparator>,</DecimalSeparator>
+<TimeSeparator>:</TimeSeparator>
+<Time100SecSeparator>,</Time100SecSeparator>
+<ListSeparator>;</ListSeparator>
+<LongDateDayOfWeekSeparator>, </LongDateDayOfWeekSeparator>
+<LongDateDaySeparator> de </LongDateDaySeparator>
+<LongDateMonthSeparator> de </LongDateMonthSeparator>
+<LongDateYearSeparator> </LongDateYearSeparator>
+</Separators>
+<Markers>
+<QuotationStart>‘</QuotationStart>
+<QuotationEnd>’</QuotationEnd>
+<DoubleQuotationStart>“</DoubleQuotationStart>
+<DoubleQuotationEnd>”</DoubleQuotationEnd>
+</Markers>
+<TimeAM>AM</TimeAM>
+<TimePM>PM</TimePM>
+<MeasurementSystem>Metric</MeasurementSystem>
+</LC_CTYPE>
+<LC_FORMAT>
+<FormatElement msgid="DateFormatskey1" default="true" type="short" usage="DATE" formatindex="18">
+<FormatCode>DD-MM-AAAA</FormatCode>
+<DefaultName></DefaultName>
+</FormatElement>
+<FormatElement msgid="DateFormatskey2" default="false" type="medium" usage="DATE" formatindex="28">
+<FormatCode>NN DD-MMM AA</FormatCode>
+<DefaultName></DefaultName>
+</FormatElement>
+<FormatElement msgid="DateFormatskey3" default="false" type="medium" usage="DATE" formatindex="34">
+<FormatCode>MM-AA</FormatCode>
+<DefaultName></DefaultName>
+</FormatElement>
+<FormatElement msgid="DateFormatskey4" default="false" type="medium" usage="DATE" formatindex="35">
+<FormatCode>DD-MMM</FormatCode>
+<DefaultName></DefaultName>
+</FormatElement>
+<FormatElement msgid="DateFormatskey5" default="false" type="medium" usage="DATE" formatindex="36">
+<FormatCode>MMMM</FormatCode>
+<DefaultName></DefaultName>
+</FormatElement>
+<FormatElement msgid="DateFormatskey6" default="false" type="medium" usage="DATE" formatindex="37">
+<FormatCode>QQ AA</FormatCode>
+<DefaultName></DefaultName>
+</FormatElement>
+<FormatElement msgid="DateFormatskey7" default="false" type="medium" usage="DATE" formatindex="21">
+<FormatCode>DD-MM-AAAA</FormatCode>
+<DefaultName></DefaultName>
+</FormatElement>
+<FormatElement msgid="DateFormatskey8" default="true" type="medium" usage="DATE" formatindex="20">
+<FormatCode>DD-MM-AA</FormatCode>
+<DefaultName></DefaultName>
+</FormatElement>
+<FormatElement msgid="DateFormatskey9" default="true" type="long" usage="DATE" formatindex="19">
+<FormatCode>NNNND "de" MMMM "de" AAAA</FormatCode>
+<DefaultName></DefaultName>
+</FormatElement>
+<FormatElement msgid="DateFormatskey10" default="false" type="long" usage="DATE" formatindex="22">
+<FormatCode>D "de" MMM "de" AA</FormatCode>
+<DefaultName></DefaultName>
+</FormatElement>
+<FormatElement msgid="DateFormatskey11" default="false" type="long" usage="DATE" formatindex="23">
+<FormatCode>D "de" MMM "de" AAAA</FormatCode>
+<DefaultName></DefaultName>
+</FormatElement>
+<FormatElement msgid="DateFormatskey12" default="false" type="long" usage="DATE" formatindex="25">
+<FormatCode>D "de" MMMM "de" AAAA</FormatCode>
+<DefaultName></DefaultName>
+</FormatElement>
+<FormatElement msgid="DateFormatskey13" default="false" type="long" usage="DATE" formatindex="27">
+<FormatCode>NN, D "de" MMM "de" AA</FormatCode>
+<DefaultName></DefaultName>
+</FormatElement>
+<FormatElement msgid="DateFormatskey14" default="false" type="long" usage="DATE" formatindex="29">
+<FormatCode>NN, D "de" MMMM "de" AAAA</FormatCode>
+<DefaultName></DefaultName>
+</FormatElement>
+<FormatElement msgid="DateFormatskey15" default="false" type="long" usage="DATE" formatindex="30">
+<FormatCode>NNNND "de" MMMM "de" AAAA</FormatCode>
+<DefaultName></DefaultName>
+</FormatElement>
+<FormatElement msgid="DateFormatskey16" default="false" type="long" usage="DATE" formatindex="24">
+<FormatCode>D. MMM. AAAA</FormatCode>
+<DefaultName></DefaultName>
+</FormatElement>
+<FormatElement msgid="DateFormatskey17" default="false" type="long" usage="DATE" formatindex="26">
+<FormatCode>D. MMMM AAAA</FormatCode>
+<DefaultName></DefaultName>
+</FormatElement>
+<FormatElement msgid="DateFormatskey18" default="false" type="short" usage="DATE" formatindex="31">
+<FormatCode>MM-DD</FormatCode>
+<DefaultName></DefaultName>
+</FormatElement>
+<FormatElement msgid="DateFormatskey19" default="false" type="medium" usage="DATE" formatindex="32">
+<FormatCode>AA-MM-DD</FormatCode>
+<DefaultName>ISO 8601 (EN 28601)</DefaultName>
+</FormatElement>
+<FormatElement msgid="DateFormatskey20" default="false" type="medium" usage="DATE" formatindex="33">
+<FormatCode>AAAA-MM-DD</FormatCode>
+<DefaultName>ISO 8601 (EN 28601)</DefaultName>
+</FormatElement>
+<FormatElement msgid="DateFormatskey21" default="false" type="medium" usage="DATE" formatindex="38">
+<FormatCode>WW</FormatCode>
+<DefaultName></DefaultName>
+</FormatElement>
+<FormatElement msgid="TimeFormatskey1" default="true" type="short" usage="TIME" formatindex="39">
+<FormatCode>HH:MM</FormatCode>
+<DefaultName></DefaultName>
+</FormatElement>
+<FormatElement msgid="TimeFormatskey2" default="true" type="medium" usage="TIME" formatindex="40">
+<FormatCode>HH:MM:SS</FormatCode>
+<DefaultName></DefaultName>
+</FormatElement>
+<FormatElement msgid="TimeFormatskey3" default="false" type="short" usage="TIME" formatindex="41">
+<FormatCode>HH:MM AM/PM</FormatCode>
+<DefaultName></DefaultName>
+</FormatElement>
+<FormatElement msgid="TimeFormatskey4" default="false" type="medium" usage="TIME" formatindex="42">
+<FormatCode>HH:MM:SS AM/PM</FormatCode>
+<DefaultName></DefaultName>
+</FormatElement>
+<FormatElement msgid="TimeFormatskey5" default="false" type="medium" usage="TIME" formatindex="43">
+<FormatCode>[HH]:MM:SS</FormatCode>
+<DefaultName></DefaultName>
+</FormatElement>
+<FormatElement msgid="TimeFormatskey6" default="false" type="short" usage="TIME" formatindex="44">
+<FormatCode>MM:SS,00</FormatCode>
+<DefaultName></DefaultName>
+</FormatElement>
+<FormatElement msgid="TimeFormatskey7" default="false" type="medium" usage="TIME" formatindex="45">
+<FormatCode>[HH]:MM:SS,00</FormatCode>
+<DefaultName></DefaultName>
+</FormatElement>
+<FormatElement msgid="DateTimeFormatskey1" default="true" type="medium" usage="DATE_TIME" formatindex="46">
+<FormatCode>DD-MM-AA HH:MM</FormatCode>
+<DefaultName></DefaultName>
+</FormatElement>
+<FormatElement msgid="DateTimeFormatskey2" default="false" type="medium" usage="DATE_TIME" formatindex="47">
+<FormatCode>DD-MM-AAAA HH:MM:SS</FormatCode>
+<DefaultName></DefaultName>
+</FormatElement>
+<FormatElement msgid="FixedFormatskey1" default="true" type="medium" usage="FIXED_NUMBER" formatindex="0">
+<FormatCode>Estandar</FormatCode>
+<DefaultName></DefaultName>
+</FormatElement>
+<FormatElement msgid="FixedFormatskey2" default="true" type="short" usage="FIXED_NUMBER" formatindex="1">
+<FormatCode>0</FormatCode>
+<DefaultName></DefaultName>
+</FormatElement>
+<FormatElement msgid="FixedFormatskey3" default="false" type="medium" usage="FIXED_NUMBER" formatindex="2">
+<FormatCode>0,00</FormatCode>
+<DefaultName></DefaultName>
+</FormatElement>
+<FormatElement msgid="FixedFormatskey4" default="false" type="short" usage="FIXED_NUMBER" formatindex="3">
+<FormatCode>#.##0</FormatCode>
+<DefaultName></DefaultName>
+</FormatElement>
+<FormatElement msgid="FixedFormatskey5" default="false" type="medium" usage="FIXED_NUMBER" formatindex="4">
+<FormatCode>#.##0,00</FormatCode>
+<DefaultName></DefaultName>
+</FormatElement>
+<FormatElement msgid="FixedFormatskey6" default="false" type="medium" usage="FIXED_NUMBER" formatindex="5">
+<FormatCode>#.###,00</FormatCode>
+<DefaultName></DefaultName>
+</FormatElement>
+<FormatElement msgid="CurrencyFormatskey1" default="true" type="short" usage="CURRENCY" formatindex="12">
+<FormatCode>#.##0 [$Kz-816];-#.##0 [$Kz-816]</FormatCode>
+<DefaultName></DefaultName>
+</FormatElement>
+<FormatElement msgid="CurrencyFormatskey2" default="false" type="medium" usage="CURRENCY" formatindex="13">
+<FormatCode>#.##0,00 [$Kz-816];-#.##0,00 [$Kz-816]</FormatCode>
+<DefaultName></DefaultName>
+</FormatElement>
+<FormatElement msgid="CurrencyFormatskey3" default="false" type="medium" usage="CURRENCY" formatindex="14">
+<FormatCode>#.##0 [$Kz-816];[RED]-#.##0 [$Kz-816]</FormatCode>
+<DefaultName></DefaultName>
+</FormatElement>
+<FormatElement msgid="CurrencyFormatskey4" default="true" type="medium" usage="CURRENCY" formatindex="15">
+<FormatCode>#.##0,00 [$Kz-816];[RED]-#.##0,00 [$Kz-816]</FormatCode>
+<DefaultName></DefaultName>
+</FormatElement>
+<FormatElement msgid="CurrencyFormatskey5" default="false" type="medium" usage="CURRENCY" formatindex="16">
+<FormatCode>#.##0,00 CCC</FormatCode>
+<DefaultName></DefaultName>
+</FormatElement>
+<FormatElement msgid="CurrencyFormatskey6" default="false" type="medium" usage="CURRENCY" formatindex="17">
+<FormatCode>#.##0,-- [$Kz-816];[RED]-#.##0,-- [$Kz-816]</FormatCode>
+<DefaultName></DefaultName>
+</FormatElement>
+<FormatElement msgid="PercentFormatskey1" default="true" type="short" usage="PERCENT_NUMBER" formatindex="8">
+<FormatCode>0%</FormatCode>
+<DefaultName></DefaultName>
+</FormatElement>
+<FormatElement msgid="PercentFormatskey2" default="true" type="long" usage="PERCENT_NUMBER" formatindex="9">
+<FormatCode>0,00%</FormatCode>
+<DefaultName></DefaultName>
+</FormatElement>
+<FormatElement msgid="ScientificFormatskey1" default="true" type="medium" usage="SCIENTIFIC_NUMBER" formatindex="6">
+<FormatCode>0,00E+000</FormatCode>
+<DefaultName></DefaultName>
+</FormatElement>
+<FormatElement msgid="ScientificFormatskey2" default="false" type="medium" usage="SCIENTIFIC_NUMBER" formatindex="7">
+<FormatCode>0,00E+00</FormatCode>
+<DefaultName></DefaultName>
+</FormatElement>
+</LC_FORMAT>
+<LC_COLLATION ref="en_US"/>
+<LC_SEARCH ref="en_US"/>
+<LC_INDEX ref="en_US"/>
+<LC_CALENDAR>
+<Calendar unoid="gregorian" default="true">
+<DaysOfWeek>
+<Day>
+<DayID>sun</DayID>
+<DefaultAbbrvName>Dom</DefaultAbbrvName>
+<DefaultFullName>Domingo</DefaultFullName>
+</Day>
+<Day>
+<DayID>mon</DayID>
+<DefaultAbbrvName>Seg</DefaultAbbrvName>
+<DefaultFullName>Segunda-feira</DefaultFullName>
+</Day>
+<Day>
+<DayID>tue</DayID>
+<DefaultAbbrvName>Ter</DefaultAbbrvName>
+<DefaultFullName>Terça-feira</DefaultFullName>
+</Day>
+<Day>
+<DayID>wed</DayID>
+<DefaultAbbrvName>Qua</DefaultAbbrvName>
+<DefaultFullName>Quarta-feira</DefaultFullName>
+</Day>
+<Day>
+<DayID>thu</DayID>
+<DefaultAbbrvName>Qui</DefaultAbbrvName>
+<DefaultFullName>Quinta-feira</DefaultFullName>
+</Day>
+<Day>
+<DayID>fri</DayID>
+<DefaultAbbrvName>Sex</DefaultAbbrvName>
+<DefaultFullName>Sexta-feira</DefaultFullName>
+</Day>
+<Day>
+<DayID>sat</DayID>
+<DefaultAbbrvName>Sáb</DefaultAbbrvName>
+<DefaultFullName>Sábado</DefaultFullName>
+</Day>
+</DaysOfWeek>
+<MonthsOfYear>
+<Month>
+<MonthID>jan</MonthID>
+<DefaultAbbrvName>Jan</DefaultAbbrvName>
+<DefaultFullName>Janeiro</DefaultFullName>
+</Month>
+<Month>
+<MonthID>feb</MonthID>
+<DefaultAbbrvName>Fev</DefaultAbbrvName>
+<DefaultFullName>Fevereiro</DefaultFullName>
+</Month>
+<Month>
+<MonthID>mar</MonthID>
+<DefaultAbbrvName>Mar</DefaultAbbrvName>
+<DefaultFullName>Março</DefaultFullName>
+</Month>
+<Month>
+<MonthID>apr</MonthID>
+<DefaultAbbrvName>Abr</DefaultAbbrvName>
+<DefaultFullName>Abril</DefaultFullName>
+</Month>
+<Month>
+<MonthID>may</MonthID>
+<DefaultAbbrvName>Mai</DefaultAbbrvName>
+<DefaultFullName>Maio</DefaultFullName>
+</Month>
+<Month>
+<MonthID>jun</MonthID>
+<DefaultAbbrvName>Jun</DefaultAbbrvName>
+<DefaultFullName>Junho</DefaultFullName>
+</Month>
+<Month>
+<MonthID>jul</MonthID>
+<DefaultAbbrvName>Jul</DefaultAbbrvName>
+<DefaultFullName>Julho</DefaultFullName>
+</Month>
+<Month>
+<MonthID>aug</MonthID>
+<DefaultAbbrvName>Ago</DefaultAbbrvName>
+<DefaultFullName>Agosto</DefaultFullName>
+</Month>
+<Month>
+<MonthID>sep</MonthID>
+<DefaultAbbrvName>Set</DefaultAbbrvName>
+<DefaultFullName>Setembro</DefaultFullName>
+</Month>
+<Month>
+<MonthID>oct</MonthID>
+<DefaultAbbrvName>Out</DefaultAbbrvName>
+<DefaultFullName>Outubro</DefaultFullName>
+</Month>
+<Month>
+<MonthID>nov</MonthID>
+<DefaultAbbrvName>Nov</DefaultAbbrvName>
+<DefaultFullName>Novembro</DefaultFullName>
+</Month>
+<Month>
+<MonthID>dec</MonthID>
+<DefaultAbbrvName>Dez</DefaultAbbrvName>
+<DefaultFullName>Dezembro</DefaultFullName>
+</Month>
+</MonthsOfYear>
+<Eras>
+<Era>
+<EraID>bc</EraID>
+<DefaultAbbrvName>BC</DefaultAbbrvName>
+<DefaultFullName>BC</DefaultFullName>
+</Era>
+<Era>
+<EraID>ad</EraID>
+<DefaultAbbrvName>AD</DefaultAbbrvName>
+<DefaultFullName>AD</DefaultFullName>
+</Era>
+</Eras>
+<StartDayOfWeek>
+<DayID>mon</DayID>
+</StartDayOfWeek>
+<MinimalDaysInFirstWeek>1</MinimalDaysInFirstWeek>
+</Calendar>
+</LC_CALENDAR>
+<LC_CURRENCY>
+<Currency default="true" usedInCompatibleFormatCodes="true">
+<CurrencyID>AOA</CurrencyID>
+<CurrencySymbol>Kz</CurrencySymbol>
+<BankSymbol>AOA</BankSymbol>
+<CurrencyName>Kwanza</CurrencyName>
+<DecimalPlaces>2</DecimalPlaces>
+</Currency>
+</LC_CURRENCY>
+<LC_TRANSLITERATION ref="en_US"/>
+<LC_MISC>
+<ReservedWords>
+<trueWord>verdadeiro</trueWord>
+<falseWord>falso</falseWord>
+<quarter1Word>1º trimestre</quarter1Word>
+<quarter2Word>2º trimestre</quarter2Word>
+<quarter3Word>3º trimestre</quarter3Word>
+<quarter4Word>4º trimestre</quarter4Word>
+<aboveWord>acima</aboveWord>
+<belowWord>abaixo</belowWord>
+<quarter1Abbreviation>T1</quarter1Abbreviation>
+<quarter2Abbreviation>T2</quarter2Abbreviation>
+<quarter3Abbreviation>T3</quarter3Abbreviation>
+<quarter4Abbreviation>T4</quarter4Abbreviation>
+</ReservedWords>
+</LC_MISC>
+<LC_NumberingLevel ref="en_US"/>
+<LC_OutLineNumberingLevel ref="en_US"/>
+</Locale>
diff --git a/i18npool/source/localedata/localedata.cxx b/i18npool/source/localedata/localedata.cxx
index 5c04a124bf24..d011865a7e35 100644
--- a/i18npool/source/localedata/localedata.cxx
+++ b/i18npool/source/localedata/localedata.cxx
@@ -255,7 +255,8 @@ static const struct {
{ "ur_PK", lcl_DATA_OTHERS },
{ "ht_HT", lcl_DATA_OTHERS },
{ "jbo", lcl_DATA_OTHERS },
- { "kab_DZ", lcl_DATA_OTHERS }
+ { "kab_DZ", lcl_DATA_OTHERS },
+ { "pt_AO", lcl_DATA_OTHERS }
};
static const sal_Unicode under = sal_Unicode('_');
diff --git a/i18npool/source/transliteration/transliterationImpl.cxx b/i18npool/source/transliteration/transliterationImpl.cxx
index f2cf31e79308..c900f2f3636f 100644
--- a/i18npool/source/transliteration/transliterationImpl.cxx
+++ b/i18npool/source/transliteration/transliterationImpl.cxx
@@ -44,6 +44,8 @@
#include <rtl/ustring.hxx>
#include <rtl/ustrbuf.hxx>
+#include <algorithm>
+
#if OSL_DEBUG_LEVEL > 1
#include <stdio.h>
#endif
@@ -476,24 +478,25 @@ TransliterationImpl::equals(
OUString tmpStr1 = folding(str1, pos1, nCount1, offset1);
OUString tmpStr2 = folding(str2, pos2, nCount2, offset2);
+ // Length of offset1 and offset2 may still be 0 if there was no folding
+ // necessary!
const sal_Unicode *p1 = tmpStr1.getStr();
const sal_Unicode *p2 = tmpStr2.getStr();
- sal_Int32 i, nLen = (tmpStr1.getLength() < tmpStr1.getLength() ?
- tmpStr1.getLength() : tmpStr2.getLength());
+ sal_Int32 i, nLen = ::std::min( tmpStr1.getLength(), tmpStr2.getLength());
for (i = 0; i < nLen; ++i, ++p1, ++p2 ) {
if (*p1 != *p2) {
// return number of matched code points so far
- nMatch1 = offset1[i];
- nMatch2 = offset2[i];
+ nMatch1 = (i < offset1.getLength()) ? offset1[i] : i;
+ nMatch2 = (i < offset2.getLength()) ? offset2[i] : i;
return sal_False;
}
}
// i==nLen
if ( tmpStr1.getLength() != tmpStr2.getLength() ) {
// return number of matched code points so far
- nMatch1 = offset1[i-1] + 1;
- nMatch2 = offset2[i-1] + 1;
+ nMatch1 = (i <= offset1.getLength()) ? offset1[i-1] + 1 : i;
+ nMatch2 = (i <= offset2.getLength()) ? offset2[i-1] + 1 : i;
return sal_False;
} else {
nMatch1 = nCount1;