Merge pull request #228 from levinli303/simplified-chinese

Add support for Simplified Chinese
This commit is contained in:
Fred Kiefer 2021-12-31 11:19:30 +01:00 committed by GitHub
commit e6fc2740a2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 212 additions and 5 deletions

View file

@ -54,7 +54,7 @@ ifeq ($(base-resources_INSTALL_DIR),)
base-resources_INSTALL_DIR = $(GNUSTEP_LIBRARY)/Libraries/gnustep-base/Versions/$(libgnustep-base_INTERFACE_VERSION)/Resources
endif
base-resources_LANGUAGES = English German French Italian TraditionalChinese \
base-resources_LANGUAGES = English German French Italian TraditionalChinese SimplifiedChinese \
Spanish Esperanto Korean Japanese
base-resources_LOCALIZED_RESOURCE_FILES = Localizable.strings
base-resources_RESOURCE_DIRS = Languages GSTLS
@ -73,6 +73,7 @@ Languages/Polish \
Languages/Russian \
Languages/Spanish \
Languages/TraditionalChinese \
Languages/SimplifiedChinese \
Languages/Slovak \
Languages/Ukrainian \
Languages/Esperanto \

View file

@ -0,0 +1,35 @@
/* Simplified Chinese */
{
NSLanguageName = "\u7b80\u4f53\u4e2d\u6587";
NSLanguageCode = CHS;
NSFormalName = "\u7b80\u4f53\u4e2d\u6587";
NSCurrencySymbol = "\u00a5";
NSPositiveCurrencyFormatString = "\u00a59,999.00";
NSNegativeCurrencyFormatString = "\u00a5-9,999.00";
NSInternationalCurrencyString = "CNY";
NSDecimalDigits = ("0", "1", "2", "3", "4", "5", "6", "7", "8", "9");
NSDecimalSeparator = ".";
NSThousandsSeparator = ",";
NSAMPMDesignation = ("\u4e0a\u5348", "\u4e0b\u5348");
NSDateFormatString = "%Y\u5e74%B%d\u65e5 %A";
NSDateTimeOrdering = YMDH;
NSEarlierTimeDesignations = ("\u4e4b\u524d", "\u8fc7\u53bb");
NSHourNameDesignations = ((0, "\u5348\u591c"), (12, "\u4e2d\u5348"), (10, "\u4e0a\u5348"), (14, "\u4e0b\u5348"), (19, "\u665a\u4e0a"));
NSLaterTimeDesignations = ("\u4e4b\u5f8c", "\u4ee5\u5f8c");
NSMonthNameArray = ("\u4e00\u6708", "\u4e8c\u6708", "\u4e09\u6708", "\u56db\u6708", "\u4e94\u6708", "\u516d\u6708", "\u4e03\u6708", "\u516b\u6708", "\u4e5d\u6708", "\u5341\u6708", "\u5341\u4e00\u6708", "\u5341\u4e8c\u6708");
NSNextDayDesignations = ("\u660e\u5929");
NSNextNextDayDesignations = ("\u540e\u5929");
NSPriorDayDesignations = ("\u6628\u5929");
NSShortDateFormatString = "%Y/%m/%d";
NSShortMonthNameArray = ("\u4e00\u6708", "\u4e8c\u6708", "\u4e09\u6708", "\u56db\u6708", "\u4e94\u6708", "\u516d\u6708", "\u4e03\u6708", "\u516b\u6708", "\u4e5d\u6708", "\u5341\u6708", "\u5341\u4e00\u6708", "\u5341\u4e8c\u6708");
NSShortTimeDateFormatString = "%Y %b %d %H:%M";
NSShortWeekDayNameArray = ("\u9031\u4e00", "\u9031\u4e8c", "\u9031\u4e09", "\u9031\u56db", "\u9031\u4e94", "\u9031\u516d", "\u9031\u65e5");
NSThisDayDesignations = ("\u4eca\u5929");
NSTimeDateFormatString = "%Y\u5e74%b%d\u65e5 %a %Z %H:%M:%S";
NSTimeFormatString = "%H:%M:%S";
NSWeekDayNameArray = ("\u661f\u671f\u4e00", "\u661f\u671f\u4e8c", "\u661f\u671f\u4e09", "\u661f\u671f\u56db", "\u661f\u671f\u4e94", "\u661f\u671f\u516d", "\u661f\u671f\u65e5");
NSYearMonthWeekDesignations = ("\u5e74", "\u6708", "\u9031");
}

View file

@ -0,0 +1,141 @@
/* Simplified Chinese string encodings */
GSUndefinedEncoding = "未知";
NSProprietaryStringEncoding = "内置";
NSASCIIStringEncoding = "西文(ASCII)";
NSNEXTSTEPStringEncoding = "西文(NextStep)";
NSJapaneseEUCStringEncoding = "日文(EUC)";
NSUTF8StringEncoding = "Unicode (UTF-8)";
NSISOLatin1StringEncoding = "西文(ISO Latin 1)";
NSSymbolStringEncoding = "符号(Mac OS)";
NSNonLossyASCIIStringEncoding = "无损ASCII";
NSShiftJISStringEncoding = "日文(Windows, DOS)";
NSISOLatin2StringEncoding = "中欧语系(ISO Latin 2)";
NSUnicodeStringEncoding = "Unicode (UTF-16)";
NSWindowsCP1251StringEncoding = "西里尔文(Windows)";
NSWindowsCP1252StringEncoding = "西文(Windows Latin 1)";
NSWindowsCP1253StringEncoding = "希腊文(Windows)";
NSWindowsCP1254StringEncoding = "土耳其文(Windows Latin 5)";
NSWindowsCP1250StringEncoding = "中欧语系(Windows Latin 2)";
NSISO2022JPStringEncoding = "日文(ISO 2022-JP)";
NSMacOSRomanStringEncoding = "西文(Mac OS Roman)";
NSUTF16BigEndianStringEncoding = "Unicode (UTF-16BE)";
NSUTF16LittleEndianStringEncoding = "Unicode (UTF-16LE)";
NSUTF32StringEncoding = "Unicode (UTF-32)";
NSUTF32BigEndianStringEncoding = "Unicode (UTF-32BE)";
NSUTF32LittleEndianStringEncoding = "Unicode (UTF-32LE)";
NSMacOSJapaneseStringEncoding = "日文(Mac OS)";
NSMacOSTraditionalChineseStringEncoding = "繁体中文(Mac OS)";
NSMacOSKoreanStringEncoding = "韩文(Mac OS)";
NSMacOSArabicStringEncoding = "阿拉伯文(Mac OS)";
NSMacOSHebrewStringEncoding = "希伯来文(Mac OS)";
NSMacOSGreekStringEncoding = "希腊文(Mac OS)";
NSMacOSCyrillicStringEncoding = "西里尔文(Mac OS)";
NSMacOSDevanagariStringEncoding = "天城文(Mac OS)";
NSMacOSGurmukhiStringEncoding = "古木基文(Mac OS)";
NSMacOSGujaratiStringEncoding = "古吉拉特文(Mac OS)";
NSMacOSOriyaStringEncoding = "Oriya (Mac OS)";
NSMacOSBengaliStringEncoding = "Bengali (Mac OS)";
NSMacOSTamilStringEncoding = "Tamil (Mac OS)";
NSMacOSTeluguStringEncoding = "Telugu (Mac OS)";
NSMacOSKannadaStringEncoding = "Kannada (Mac OS)";
NSMacOSMalayalamStringEncoding = "Malayalam (Mac OS)";
NSMacOSSinhaleseStringEncoding = "Sinhalese (Mac OS)";
NSMacOSBurmeseStringEncoding = "Burmese (Mac OS)";
NSMacOSKhmerStringEncoding = "Khmer (Mac OS)";
NSMacOSThaiStringEncoding = "泰文(Mac OS)";
NSMacOSLaotianStringEncoding = "Laotian (Mac OS)";
NSMacOSGeorgianStringEncoding = "Georgian (Mac OS)";
NSMacOSArmenianStringEncoding = "Armenian (Mac OS)";
NSMacOSSimplifiedChineseStringEncoding = "简体中文(Mac OS)";
NSMacOSTibetanStringEncoding = "藏文(Mac OS)";
NSMacOSMongolianStringEncoding = "Mongolian (Mac OS)";
NSMacOSEthiopicStringEncoding = "Ethiopic (Mac OS)";
NSMacOSCentralEuropeanRomanStringEncoding = "中欧语系(Mac OS)";
NSMacOSVietnameseStringEncoding = "Vietnamese (Mac OS)";
NSMacOSSymbolStringEncoding = "符号(Mac OS)";
NSMacOSDingbatsStringEncoding = "花饰(Mac OS)";
NSMacOSTurkishStringEncoding = "土耳其文(Mac OS)";
NSMacOSCroatianStringEncoding = "克罗地亚文(Mac OS)";
NSMacOSIcelandicStringEncoding = "冰岛文(Mac OS)";
NSMacOSRomanianStringEncoding = "罗马尼亚文(Mac OS)";
NSMacOSCelticStringEncoding = "凯尔特文(Mac OS)";
NSMacOSGaelicStringEncoding = "盖尔文(Mac OS)";
NSMacOSKeyboardSymbolsStringEncoding = "键盘符号(Mac OS)";
NSMacOSFarsiStringEncoding = "波斯文(Mac OS)";
NSMacOSUkrainianStringEncoding = "西里尔文(Mac OS Ukrainian)";
NSMacOSInuitStringEncoding = "因纽特文(Mac OS)";
NSMacVT100StringEncoding = "Western (Mac VT100)";
NSMacHFSStringEncoding = "西文(Mac OS Roman)";
NSUTF7StringEncoding = "Unicode (UTF-7)";
NSISOLatin3StringEncoding = "西文(ISO Latin 3)";
NSISOLatin4StringEncoding = "中欧语系(ISO Latin 4)";
NSISOLatinCyrillicStringEncoding = "西里尔文(ISO 8859-5)";
NSISOLatinArabicStringEncoding = "阿拉伯文(ISO 8859-6)";
NSISOLatinGreekStringEncoding = "希腊文(ISO 8859-7)";
NSISOLatinHebrewStringEncoding = "希伯来文(ISO 8859-8)";
NSISOLatin5StringEncoding = "土耳其文(ISO Latin 5)";
NSISOLatin6StringEncoding = "北日耳曼语支(ISO Latin 6)";
NSISOLatinThaiStringEncoding = "泰文(ISO 8859-11)";
NSISOLatin7StringEncoding = "波罗的海文(ISO Latin 7)";
NSISOLatin8StringEncoding = "凯尔特文(ISO Latin 8)";
NSISOLatin9StringEncoding = "西文(ISO Latin 9)";
NSISOLatin10StringEncoding = "罗马尼亚文(ISO Latin 10)";
NSDOSLatinUSStringEncoding = "美国拉丁文(DOS)";
NSDOSGreekStringEncoding = "希腊文(DOS)";
NSDOSBalticRimStringEncoding = "波罗的海文(DOS)";
NSDOSLatin1StringEncoding = "西文(DOS Latin 1)";
NSDOSGreek1StringEncoding = "希腊文(DOS Greek 1)";
NSDOSLatin2StringEncoding = "中欧语系(DOS Latin 2)";
NSDOSCyrillicStringEncoding = "西里尔文(DOS)";
NSDOSTurkishStringEncoding = "土耳其文(DOS)";
NSDOICortugueseStringEncoding = "葡萄牙文(DOS)";
NSDOSIcelandicStringEncoding = "冰岛文(DOS)";
NSDOSHebrewStringEncoding = "希伯来文(DOS)";
NSDOSCanadianFrenchStringEncoding = "加拿大法文(DOS)";
NSDOSArabicStringEncoding = "阿拉伯文(DOS)";
NSDOSNordicStringEncoding = "北日耳曼语支(DOS)";
NSDOSRussianStringEncoding = "俄文(DOS)";
NSDOSGreek2StringEncoding = "希腊文(DOS Greek 2)";
NSDOSThaiStringEncoding = "泰文(Windows, DOS)";
NSDOSJapaneseStringEncoding = "日文(Windows, DOS)";
NSDOSChineseSimplifStringEncoding = "简体中文(Windows, DOS)";
NSDOSKoreanStringEncoding = "韩文(Windows, DOS)";
NSDOSChineseTradStringEncoding = "繁体中文(Windows, DOS)";
NSWindowsLatin1StringEncoding = "西文(Windows Latin 1)";
NSWindowsLatin2StringEncoding = "中欧语系(Windows Latin 2)";
NSWindowsCyrillicStringEncoding = "西里尔文(Windows)";
NSWindowsGreekStringEncoding = "希腊文(Windows)";
NSWindowsLatin5StringEncoding = "土耳其文(Windows Latin 5)";
NSWindowsHebrewStringEncoding = "希伯来文(Windows)";
NSWindowsArabicStringEncoding = "阿拉伯文(Windows)";
NSWindowsBalticRimStringEncoding = "波罗的海文(Windows)";
NSWindowsVietnameseStringEncoding = "越南文(Windows)";
NSWindowsKoreanJohabStringEncoding = "Korean (Windows Johab)";
NSJIS_X0208_90StringEncoding = "Japanese (JIS X0208)";
NSShiftJIS_X0213StringEncoding = "日文(Shift JIS X0213)";
NSGB_2312_80StringEncoding = "简体中文(GB 2312)";
NSGBK_95StringEncoding = "中文(GBK)";
NSGB_18030_2000StringEncoding = "中文(GB 18030)";
NSKSC_5601_87StringEncoding = "Korean (KSC 5601-1987)";
NSISO2022JapaneseStringEncoding = "日文(ISO 2022-JP)";
NSISO2022Japanese2StringEncoding = "日文(ISO 2022-JP-2)";
NSISO2022Japanese1StringEncoding = "日文(ISO 2022-JP-1)";
NSISO2022Japanese3StringEncoding = "Japanese (ISO 2022-JP-3)";
NSISO2022ChineseStringEncoding = "中文(ISO 2022-CN)";
NSISO2022ExtendedChineseStringEncoding = "Chinese (ISO 2022-CN-EXT)";
NSISO2022KoreanStringEncoding = "韩文(ISO 2022-KR)";
NSEUCJapaneseStringEncoding = "日文(EUC)";
NSEUCChineseStringEncoding = "简体中文(GB 2312)";
NSEUCTaiwanChineseStringEncoding = "繁体中文(EUC)";
NSEUCKoreanStringEncoding = "韩文(EUC)";
NSKOI8RStringEncoding = "西里尔文(KOI8-R)";
NSBig5StringEncoding = "繁体中文(Big 5)";
NSMacRomanLatin1StringEncoding = "西文Mac邮件";
NSHZ_GB_2312StringEncoding = "简体中文(HZ GB 2312)";
NSBig5_HKSCS_1999StringEncoding = "繁体中文(Big 5 HKSCS)";
NSKOI8UStringEncoding = "乌克兰文(KOI8-U)";
NSBig5EStringEncoding = "繁体中文(Big 5-E)";
NSNextStepLatinStringEncoding = "西文(NextStep)";
NSNextStepJapaneseStringEncoding = "Japanese (NextStep)";
NSEBCDICUSStringEncoding = "西文(EBCDIC Latin Core)";
NSEBCDICCP037StringEncoding = "西文(EBCDIC Latin 1)";

View file

@ -5421,6 +5421,8 @@ appendString(NSMutableData *m, NSUInteger offset, NSUInteger fold,
(void*)NSDOSChineseSimplifStringEncoding);
NSMapInsert(charsets, (void*)@"cp936",
(void*)NSDOSChineseSimplifStringEncoding);
NSMapInsert(charsets, (void*)@"gbk",
(void*)NSDOSChineseSimplifStringEncoding);
NSMapInsert(charsets, (void*)@"ibm949",
(void*)NSDOSKoreanStringEncoding);
NSMapInsert(charsets, (void*)@"cp949",
@ -5530,7 +5532,12 @@ appendString(NSMutableData *m, NSUInteger offset, NSUInteger fold,
(void*)NSWindowsVietnameseStringEncoding);
NSMapInsert(charsets, (void*)@"NSWindowsKoreanJohabStringEncoding",
(void*)NSWindowsKoreanJohabStringEncoding);
NSMapInsert(charsets, (void*)@"NSGB_2312_80StringEncoding",
(void*)NSGB_2312_80StringEncoding);
NSMapInsert(charsets, (void*)@"NSGBK_95StringEncoding",
(void*)NSGBK_95StringEncoding);
NSMapInsert(charsets, (void*)@"NSGB_18030_2000StringEncoding",
(void*)NSGB_18030_2000StringEncoding);
#endif
}
if (encodings == 0)
@ -5659,6 +5666,8 @@ appendString(NSMutableData *m, NSUInteger offset, NSUInteger fold,
(void*)@"windows-1258");
NSMapInsert(encodings, (void*)NSWindowsKoreanJohabStringEncoding,
(void*)@"windows-1361");
NSMapInsert(encodings, (void*)NSGB_18030_2000StringEncoding,
(void*)@"gb18030");
#endif
}
if (headerClass == 0)

View file

@ -314,6 +314,13 @@ static struct _strenc_ str_encoding_table[] = {
{NSWindowsKoreanJohabStringEncoding,
"NSWindowsKoreanJohabStringEncoding","CP1361",0,0,0},
{NSGB_2312_80StringEncoding,
"NSGB_2312_80StringEncoding","EUC-CN",0,0,0}, // Same as NSChineseEUCStringEncoding
{NSGBK_95StringEncoding,
"NSGBK_95StringEncoding","CP936",0,0,0}, // Same as NSDOSChineseSimplifStringEncoding
{NSGB_18030_2000StringEncoding,
"NSGB_18030_2000StringEncoding","GB18030",0,0,0},
/* Now Apple encodings which have high numeric values.
*/
{NSUTF16BigEndianStringEncoding,
@ -2941,7 +2948,8 @@ GSPrivateCStringEncoding(const char *encoding)
|| strcmp(encoding, "IBM-932") == 0)
enc = NSDOSJapaneseStringEncoding;
else if (strcmp(encoding, "CP936") == 0
|| strcmp(encoding, "IBM-936") == 0)
|| strcmp(encoding, "IBM-936") == 0
|| strcmp(encoding, "GBK") == 0)
enc = NSDOSChineseSimplifStringEncoding;
else if (strcmp(encoding, "CP949") == 0
|| strcmp(encoding, "IBM-949") == 0)
@ -2964,6 +2972,8 @@ GSPrivateCStringEncoding(const char *encoding)
else if (strcmp(encoding, "CP1361") == 0
|| strcmp(encoding, "WINDOWS-1361") == 0)
enc = NSWindowsKoreanJohabStringEncoding;
else if (strcmp(encoding, "GB18030") == 0)
enc = NSGB_18030_2000StringEncoding;
}
if (enc == GSUndefinedEncoding)

View file

@ -102,7 +102,7 @@ int main(void)
locale = [[NSLocale alloc] initWithLocaleIdentifier: @"zh-Hant_TW"];
PASS_EQUAL([locale objectForKey: NSLocaleCountryCode], @"TW",
"zh-Hant_TW country code is zh");
"zh-Hant_TW country code is TW");
PASS_EQUAL([locale objectForKey: NSLocaleLanguageCode], @"zh",
"zh-Hant_TW language code is zh");
PASS_EQUAL([locale localeIdentifier], @"zh_TW",
@ -110,7 +110,18 @@ int main(void)
PASS_EQUAL([locale objectForKey: NSLocaleScriptCode], nil,
"zh-Hant_TW has no script code");
RELEASE(locale);
locale = [[NSLocale alloc] initWithLocaleIdentifier: @"zh-Hans_CN"];
PASS_EQUAL([locale objectForKey: NSLocaleCountryCode], @"CN",
"zh-Hans_CN country code is CN");
PASS_EQUAL([locale objectForKey: NSLocaleLanguageCode], @"zh",
"zh-Hans_CN language code is zh");
PASS_EQUAL([locale localeIdentifier], @"zh_CN",
"'zh-Hans_CN' is stored as 'zh_CN'");
PASS_EQUAL([locale objectForKey: NSLocaleScriptCode], nil,
"zh-Hans_CN has no script code");
RELEASE(locale);
PASS_EQUAL([NSLocale canonicalLocaleIdentifierFromString: nil], nil,
"Canonical identifier for nil is nil");
PASS_EQUAL([NSLocale canonicalLocaleIdentifierFromString: @""], @"",