Textencoding Kit localization support added.

* Textencoding Kit now uses localized names of available encodings;
* Default encoding for composing new messages in Mail application is now
  configurable through localization feature. Fixes #8147.
* This contribution was made as part of GCI 2011 task.

Signed-off-by: Siarzhuk Zharski <[email protected]>
This commit is contained in:
Aleksas Pantechovskis
2011-12-22 23:10:32 +00:00
committed by Siarzhuk Zharski
parent 82a05afe30
commit d38ae623c3
6 changed files with 124 additions and 30 deletions
+1
View File
@@ -56,6 +56,7 @@ Hide Mail Скрыть
Forward without attachments Mail Переслать без вложений
Previous Mail Предыдущее
Redo Mail Повторить
UTF-8 Mail This string is used as a key to set default message compose encoding. It must be correct IANA name from http://cgit.haiku-os.org/haiku-tree/src/kits/textencoding/character_sets.cpp Translate it only if you want to change default message compose encoding for your locale. If you don't know what is it and why it may needs changing, just leave \"UTF-8\". KOI8-R
Add enclosure… Mail Добавить вложение…
Mail System name Почта
Print… Mail Печать…
@@ -0,0 +1,28 @@
1 english x-vnd.Haiku-libtextencodings 3062073902
ISO Greek textencodings ISO Греческая
ISO South European textencodings ISO Южноевропейская
Chinese Big5 textencodings Китайская Big5
ISO Hebrew textencodings ISO Иврит
ISO Arabic textencodings ISO Арабская
ISO Latin 9 textencodings ISO Latin 9
Japanese Shift JIS textencodings Японская Shift JIS
DOS Cyrillic textencodings DOS Кириллица
Windows Cyrillic (CP 1251) textencodings Windows Кириллица (CP 1251)
Japanese EUC textencodings Японская EUC
Unicode textencodings Юникод
Chinese GB18030 textencodings Китайская GB18030
ISO North European textencodings ISO Северноевропейская
ISO Celtic textencodings ISO Кельтская
Unicode (UCS-2) textencodings Юникод (UCS-2)
Windows Latin-1 (CP 1252) textencodings Windows Latin-1 (CP 1252)
Macintosh Roman textencodings Macintosh Roman
ISO Turkish textencodings ISO Турецкая
Japanese JIS textencodings Японская JIS
KOI8-R Cyrillic textencodings KOI8-R Кириллица
ISO Baltic textencodings ISO Балтийская
ISO Nordic textencodings ISO Nordic
EUC Korean textencodings EUC Корейская
ISO West European textencodings ISO Западноевропейская
ISO East European textencodings ISO Восточноевропейская
DOS Latin-US textencodings DOS Latin-US
ISO Cyrillic textencodings ISO Кириллица
+14 -1
View File
@@ -45,6 +45,8 @@ of their respective holders. All rights reserved.
#include <Autolock.h>
#include <Catalog.h>
#include <CharacterSet.h>
#include <CharacterSetRoster.h>
#include <Clipboard.h>
#include <Debug.h>
#include <E-mail.h>
@@ -114,7 +116,7 @@ TMailApp::TMailApp()
fWarnAboutUnencodableCharacters(true),
fStartWithSpellCheckOn(false),
fShowSpamGUI(true),
fMailCharacterSet(B_MS_WINDOWS_CONVERSION),
fMailCharacterSet(B_MAIL_UTF8_CONVERSION),
fContentFont(be_fixed_font)
{
// set default values
@@ -129,6 +131,17 @@ TMailApp::TMailApp()
TITLE_BAR_HEIGHT + kSigHeight);
fPrefsWindowPos.Set(6, TITLE_BAR_HEIGHT);
const BCharacterSet *defaultComposeEncoding =
BCharacterSetRoster::FindCharacterSetByName(
B_TRANSLATE_COMMENT("UTF-8", "This string is used as a key to set "
"default message compose encoding. It must be correct IANA name from "
"http://cgit.haiku-os.org/haiku-tree/src/kits/textencoding"
"/character_sets.cpp Translate it only if you want to change default "
"message compose encoding for your locale. If you don't know what is "
"it and why it may needs changing, just leave \"UTF-8\"."));
if (defaultComposeEncoding != NULL)
fMailCharacterSet = defaultComposeEncoding->GetConversionID();
// Find and read settings file.
LoadSettings();
+10 -1
View File
@@ -3,6 +3,8 @@ SubDir HAIKU_TOP src kits textencoding ;
SetSubDirSupportedPlatformsBeOSCompatible ;
AddSubDirSupportedPlatforms libbe_test ;
AddResources libtextencoding.so : libtextencoding.rdef ;
UsePrivateHeaders textencoding ;
UseLibraryHeaders iconv ;
@@ -11,8 +13,15 @@ SharedLibrary libtextencoding.so :
CharacterSetRoster.cpp
character_sets.cpp
utf8_conversions.cpp
: be libiconv.a $(TARGET_LIBSUPC++) ;
: be libiconv.a $(TARGET_LIBSUPC++) $(HAIKU_LOCALE_LIBS) ;
Package haiku-maildaemon-cvs :
libtextencoding.so :
boot beos system lib ;
DoCatalogs libtextencoding.so :
x-vnd.Haiku-libtextencoding
:
character_sets.cpp
;
+59 -28
View File
@@ -1,8 +1,13 @@
#include <string.h>
#include <Catalog.h>
#include <Locale.h>
#include <CharacterSet.h>
#include <Debug.h>
#include "character_sets.h"
#undef B_TRANSLATE_CONTEXT
#define B_TRANSLATE_CONTEXT "textencodings"
namespace BPrivate {
/**
@@ -18,7 +23,8 @@ static const char * unicodeAliases[] = {
"UTF8", "unicode-1-1-utf-8",
NULL
};
static const BCharacterSet unicode(0,106,"Unicode","UTF-8","UTF-8",unicodeAliases);
static const BCharacterSet unicode(0,106, B_TRANSLATE("Unicode"),
"UTF-8", "UTF-8",unicodeAliases);
static const char * isoLatin1aliases[] = {
// IANA aliases
@@ -27,7 +33,8 @@ static const char * isoLatin1aliases[] = {
"819", "IBM-819", "ISO8859_1", "8859_1", "ISO8859-1",
NULL
};
static const BCharacterSet isoLatin1(1,4,"ISO West European","ISO_8859-1:1987","ISO-8859-1",isoLatin1aliases);
static const BCharacterSet isoLatin1(1,4, B_TRANSLATE("ISO West European"),
"ISO_8859-1:1987","ISO-8859-1",isoLatin1aliases);
static const char * isoLatin2aliases[] = {
// IANA aliases
@@ -36,7 +43,8 @@ static const char * isoLatin2aliases[] = {
"iso8859_2", "8859_2", "ISO8859-2", "ibm912", "ibm-912", "cp912", "912",
NULL
};
static const BCharacterSet isoLatin2(2,5,"ISO East European","ISO_8859-2:1987","ISO-8859-2",isoLatin2aliases);
static const BCharacterSet isoLatin2(2,5, B_TRANSLATE("ISO East European"),
"ISO_8859-2:1987","ISO-8859-2",isoLatin2aliases);
static const char * isoLatin3aliases[] = {
// IANA aliases
@@ -45,7 +53,8 @@ static const char * isoLatin3aliases[] = {
"iso8859_3", "8859_3", "iso8859-3", "ibm913", "ibm-913", "cp913", "913",
NULL
};
static const BCharacterSet isoLatin3(3,6,"ISO South European","ISO_8859-3:1988","ISO-8859-3",isoLatin3aliases);
static const BCharacterSet isoLatin3(3,6, B_TRANSLATE("ISO South European"),
"ISO_8859-3:1988","ISO-8859-3",isoLatin3aliases);
static const char * isoLatin4aliases[] = {
// IANA aliases
@@ -54,7 +63,8 @@ static const char * isoLatin4aliases[] = {
"iso8859_4", "iso8859-4", "8859_4", "ibm914", "ibm-914", "cp914", "914",
NULL
};
static const BCharacterSet isoLatin4(4,7,"ISO North European","ISO_8859-4:1988","ISO-8859-4",isoLatin4aliases);
static const BCharacterSet isoLatin4(4,7, B_TRANSLATE("ISO North European"),
"ISO_8859-4:1988","ISO-8859-4",isoLatin4aliases);
static const char * isoLatin5aliases[] = {
// IANA aliases
@@ -63,7 +73,8 @@ static const char * isoLatin5aliases[] = {
"iso8859_5", "8859_5", "ISO8859-5", "ibm915", "ibm-915", "cp915", "915",
NULL
};
static const BCharacterSet isoLatin5(5,8,"ISO Cyrillic","ISO_8859-5:1988","ISO-8859-5",isoLatin5aliases);
static const BCharacterSet isoLatin5(5,8, B_TRANSLATE("ISO Cyrillic"),
"ISO_8859-5:1988","ISO-8859-5",isoLatin5aliases);
static const char * isoLatin6aliases[] = {
// IANA aliases
@@ -72,7 +83,8 @@ static const char * isoLatin6aliases[] = {
"iso8859_6", "8859_6", "ISO8859-6", "ibm1089", "ibm-1089", "cp1089", "1089",
NULL
};
static const BCharacterSet isoLatin6(6,9,"ISO Arabic","ISO_8859-6:1987","ISO-8859-6",isoLatin6aliases);
static const BCharacterSet isoLatin6(6,9, B_TRANSLATE("ISO Arabic"),
"ISO_8859-6:1987","ISO-8859-6",isoLatin6aliases);
static const char * isoLatin7aliases[] = {
// IANA aliases
@@ -81,7 +93,8 @@ static const char * isoLatin7aliases[] = {
"iso8859_7", "8859_7", "iso8859-7", "sun_eu_greek", "ibm813", "ibm-813", "813", "cp813",
NULL
};
static const BCharacterSet isoLatin7(7,10,"ISO Greek","ISO_8859-7:1987","ISO-8859-7",isoLatin7aliases);
static const BCharacterSet isoLatin7(7,10, B_TRANSLATE("ISO Greek"),
"ISO_8859-7:1987","ISO-8859-7",isoLatin7aliases);
static const char * isoLatin8aliases[] = {
// IANA aliases
@@ -90,7 +103,8 @@ static const char * isoLatin8aliases[] = {
"iso8859_8", "8859_8", "ISO8859-8", "cp916", "916", "ibm916", "ibm-916",
NULL
};
static const BCharacterSet isoLatin8(8,11,"ISO Hebrew","ISO_8859-8:1988","ISO-8859-8",isoLatin8aliases);
static const BCharacterSet isoLatin8(8,11, B_TRANSLATE("ISO Hebrew"),
"ISO_8859-8:1988","ISO-8859-8",isoLatin8aliases);
static const char * isoLatin9aliases[] = {
// IANA aliases
@@ -99,7 +113,8 @@ static const char * isoLatin9aliases[] = {
"iso8859_9", "8859_9", "ibm920", "ibm-920", "920", "cp920",
NULL
};
const BCharacterSet isoLatin9(9,12,"ISO Turkish","ISO_8859-9:1989","ISO-8859-9",isoLatin9aliases);
const BCharacterSet isoLatin9(9,12, B_TRANSLATE("ISO Turkish"),
"ISO_8859-9:1989","ISO-8859-9",isoLatin9aliases);
static const char * isoLatin10aliases[] = {
// IANA aliases
@@ -107,7 +122,8 @@ static const char * isoLatin10aliases[] = {
// java aliases
NULL
};
static const BCharacterSet isoLatin10(10,13,"ISO Nordic","ISO-8859-10","ISO-8859-10",isoLatin10aliases);
static const BCharacterSet isoLatin10(10,13, B_TRANSLATE("ISO Nordic"),
"ISO-8859-10","ISO-8859-10",isoLatin10aliases);
static const char * macintoshAliases[] = {
// IANA aliases
@@ -118,7 +134,8 @@ static const char * macintoshAliases[] = {
"x-mac-roman",
NULL
};
static const BCharacterSet macintosh(11,2027,"Macintosh Roman","macintosh",NULL,macintoshAliases);
static const BCharacterSet macintosh(11,2027, B_TRANSLATE("Macintosh Roman"),
"macintosh",NULL,macintoshAliases);
static const char * shiftJISaliases[] = {
// IANA aliases
@@ -129,7 +146,8 @@ static const char * shiftJISaliases[] = {
"shift_jisx0213",
NULL
};
static const BCharacterSet shiftJIS(12,17,"Japanese Shift JIS","Shift_JIS","Shift_JIS",shiftJISaliases);
static const BCharacterSet shiftJIS(12,17, B_TRANSLATE("Japanese Shift JIS"),
"Shift_JIS","Shift_JIS",shiftJISaliases);
static const char * EUCPackedJapaneseAliases[] = {
// IANA aliases
@@ -140,7 +158,7 @@ static const char * EUCPackedJapaneseAliases[] = {
"euc-jisx0213",
NULL
};
static const BCharacterSet packedJapanese(13,18,"Japanese EUC",
static const BCharacterSet packedJapanese(13,18, B_TRANSLATE("Japanese EUC"),
"Extended_UNIX_Code_Packed_Format_for_Japanese","EUC-JP",
EUCPackedJapaneseAliases);
@@ -151,7 +169,8 @@ static const char * iso2022jpAliases[] = {
"iso2022jp", "jis", "jis_encoding", "csjisencoding",
NULL
};
static const BCharacterSet iso2022jp(14,39,"Japanese JIS","ISO-2022-JP","ISO-2022-JP",iso2022jpAliases);
static const BCharacterSet iso2022jp(14,39, B_TRANSLATE("Japanese JIS"),
"ISO-2022-JP","ISO-2022-JP",iso2022jpAliases);
static const char * windows1252aliases[] = {
// IANA aliases
@@ -159,7 +178,8 @@ static const char * windows1252aliases[] = {
"cp1252", "cp5348",
NULL
};
static const BCharacterSet windows1252(15,2252,"Windows Latin-1 (CP 1252)","windows-1252",NULL,windows1252aliases);
static const BCharacterSet windows1252(15,2252, B_TRANSLATE("Windows Latin-1 "
"(CP 1252)"),"windows-1252",NULL,windows1252aliases);
static const char * unicode2aliases[] = {
// IANA aliases
@@ -168,7 +188,8 @@ static const char * unicode2aliases[] = {
"UTF-16BE", "UTF_16BE", "X-UTF-16BE", "UnicodeBigUnmarked",
NULL
};
static const BCharacterSet unicode2(16,1000,"Unicode (UCS-2)","ISO-10646-UCS-2",NULL,unicode2aliases);
static const BCharacterSet unicode2(16,1000, B_TRANSLATE("Unicode (UCS-2)"),
"ISO-10646-UCS-2",NULL,unicode2aliases);
static const char * KOI8Raliases[] = {
// IANA aliases
@@ -177,7 +198,8 @@ static const char * KOI8Raliases[] = {
"koi8_r", "koi8", "cskoi8r",
NULL
};
static const BCharacterSet KOI8R(17,2084,"KOI8-R Cyrillic","KOI8-R","KOI8-R",KOI8Raliases);
static const BCharacterSet KOI8R(17,2084, B_TRANSLATE("KOI8-R Cyrillic"),
"KOI8-R","KOI8-R",KOI8Raliases);
static const char * windows1251aliases[] = {
// IANA aliases
@@ -185,7 +207,8 @@ static const char * windows1251aliases[] = {
"cp1251", "cp5347", "ansi-1251",
NULL
};
static const BCharacterSet windows1251(18,2251,"Windows Cyrillic (CP 1251)","windows-1251",NULL,windows1251aliases);
static const BCharacterSet windows1251(18,2251, B_TRANSLATE("Windows Cyrillic (CP 1251)"),
"windows-1251",NULL,windows1251aliases);
static const char * IBM866aliases[] = {
// IANA aliases
@@ -196,7 +219,8 @@ static const char * IBM866aliases[] = {
"dos-866",
NULL
};
static const BCharacterSet IBM866(19,2086,"DOS Cyrillic","IBM866","IBM866",IBM866aliases);
static const BCharacterSet IBM866(19,2086, B_TRANSLATE("DOS Cyrillic"),
"IBM866","IBM866",IBM866aliases);
static const char * IBM437aliases[] = {
// IANA aliases
@@ -207,7 +231,8 @@ static const char * IBM437aliases[] = {
"dos-437",
NULL
};
static const BCharacterSet IBM437(20,2011,"DOS Latin-US","IBM437","IBM437",IBM437aliases);
static const BCharacterSet IBM437(20,2011, B_TRANSLATE("DOS Latin-US"),
"IBM437","IBM437",IBM437aliases);
static const char * eucKRaliases[] = {
// IANA aliases
@@ -216,7 +241,8 @@ static const char * eucKRaliases[] = {
"ksc5601", "euckr", "ks_c_5601-1987", "ksc5601-1987", "ksc5601_1987", "ksc_5601", "5601",
NULL
};
static const BCharacterSet eucKR(21,38,"EUC Korean","EUC-KR","EUC-KR",eucKRaliases);
static const BCharacterSet eucKR(21,38, B_TRANSLATE("EUC Korean"),
"EUC-KR","EUC-KR",eucKRaliases);
static const char * iso13aliases[] = {
// IANA aliases
@@ -224,14 +250,16 @@ static const char * iso13aliases[] = {
"iso8859_13", "8859_13", "iso_8859-13", "ISO8859-13",
NULL
};
static const BCharacterSet iso13(22,109,"ISO Baltic","ISO-8859-13","ISO-8859-13",iso13aliases);
static const BCharacterSet iso13(22,109, B_TRANSLATE("ISO Baltic"),
"ISO-8859-13","ISO-8859-13",iso13aliases);
static const char * iso14aliases[] = {
// IANA aliases
"iso-ir-199", "ISO_8859-14:1998", "ISO_8859-14", "latin8", "iso-celtic", "l8",
NULL
};
static const BCharacterSet iso14(23,110,"ISO Celtic","ISO-8859-14","ISO-8859-14",iso14aliases);
static const BCharacterSet iso14(23,110, B_TRANSLATE("ISO Celtic"),
"ISO-8859-14","ISO-8859-14",iso14aliases);
static const char * iso15aliases[] = {
// IANA aliases
@@ -241,7 +269,8 @@ static const char * iso15aliases[] = {
"LATIN0", "LATIN9", "L9", "csISOlatin0", "csISOlatin9", "ISO8859_15_FDIS",
NULL
};
static const BCharacterSet iso15(24,111,"ISO Latin 9","ISO-8859-15","ISO-8859-15",iso15aliases);
static const BCharacterSet iso15(24,111, B_TRANSLATE("ISO Latin 9"),
"ISO-8859-15","ISO-8859-15",iso15aliases);
// chinese character set testing
@@ -250,7 +279,8 @@ static const char * big5aliases[] = {
"csBig5",
NULL
};
static const BCharacterSet big5(25,2026,"Chinese Big5","Big5","Big5",big5aliases);
static const BCharacterSet big5(25,2026, B_TRANSLATE("Chinese Big5"),
"Big5","Big5",big5aliases);
static const char * gb18030aliases[] = {
// java aliases
@@ -260,7 +290,8 @@ static const char * gb18030aliases[] = {
"gbk",
NULL
};
static const BCharacterSet gb18030(26,114,"Chinese GB18030","GB18030",NULL,gb18030aliases);
static const BCharacterSet gb18030(26,114, B_TRANSLATE("Chinese GB18030"),
"GB18030",NULL,gb18030aliases);
static const char* kUTF16Aliases[] = {
// IANA aliases
@@ -269,7 +300,7 @@ static const char* kUTF16Aliases[] = {
"UTF-16BE", "X-UTF-16BE", "UnicodeBigUnmarked",
NULL
};
static const BCharacterSet kUTF16(27, 1000, "Unicode", "UTF-16", "UTF-16",
static const BCharacterSet kUTF16(27, 1000, B_TRANSLATE("Unicode"), "UTF-16", "UTF-16",
kUTF16Aliases);
/**
@@ -0,0 +1,12 @@
resource app_signature "application/x-vnd.Haiku-libtextencoding";
resource app_version {
major = 1,
middle = 0,
minor = 0,
variety = 0,
internal = 0,
short_info = "1.0.0",
long_info = "Haiku libtextencoding."
};