PDA

View Full Version : Ext Translations



Pages : 1 [2]

wm003
24 Apr 2008, 6:04 AM
I found it:

Original Datepicker.js V 2.1, line 314 and 315


'<tr><td class="x-date-mp-month"><a href="#">',this.monthNames[i].substr(0, 3),'</a></td>',
'<td class="x-date-mp-month x-date-mp-sep"><a href="#">', this.monthNames[i+6].substr(0, 3), '</a></td>',
should be



'<tr><td class="x-date-mp-month"><a href="#">',Date.getShortMonthName[i],'</a></td>',
'<td class="x-date-mp-month x-date-mp-sep"><a href="#">', Date.getShortMonthName[i+6], '</a></td>',

so, it's a bug ;)

mystix
24 Apr 2008, 6:17 AM
@wm003, i've filed a report here:
http://www.extjs.com/forum/showthread.php?t=33600

funny thing is, i somehow recall reporting / mentioning this some months back on the forums, but i can't seem the find the thread... :-?

Jineb
24 Apr 2008, 6:25 AM
DatePicker-min.js too:

for(var B=0;B<6;B++){A.push("<tr><td class=\"x-date-mp-month\"><a href=\"#\">",this.monthNames[B].substr(0,3), etc...

mystix
24 Apr 2008, 6:26 AM
DatePicker-min.js too:

this.monthNames[B].substr(0,3)

errr... that's just a minified version of DatePicker.js, so yes, naturally it will have the same bug...

tof
24 Apr 2008, 6:28 AM
@wm003,
The bug was mentionned in the very same post about short month names :
http://extjs.com/forum/showthread.php?p=114838#post114838

mystix
24 Apr 2008, 6:37 AM
@wm003,
The bug was mentionned in the very same post about short month names :
http://extjs.com/forum/showthread.php?p=114838#post114838

d'oh!

i dug through both bug forums and didn't think to search here...
guess i'm really B)

mystix
24 Apr 2008, 6:52 AM
@tof, did you manage to file a bug report on the DatePicker's shortMonthName issue? can't seem to find the report in question.

mystix
24 Apr 2008, 8:02 PM
@tof, @Jineb & @wm003,

i've submitted an override for consideration @ http://extjs.com/forum/showthread.php?p=159134#post159134
you may use that in the meantime.

note that you will need to override the (new, still under consideration) Date.getShortDayName() and Date.getShortMonthName() methods (provided in the override above) to suit your locales.

thesilentman
27 Apr 2008, 6:51 AM
Hello Fellows,

Here's the updated el_GR (Greek translation UTF8).
* Changes since previous Version:
* + added Date.shortMonthNames
* + added Date.getShortMonthName
* + added Date.monthNumbers
* + added Ext.grid.GroupingView

Greetings,
Frank

amon
27 Apr 2008, 12:07 PM
I've fixed the bug of the short names.

It's based on the ext-lang-en.js from the ExtJS 2.1 package.

mystix
27 Apr 2008, 6:01 PM
[QUOTE=jtarini;157044]Locale ext-lang-pt_br.js da vers

enterco
28 Apr 2008, 9:43 AM
Hey, I find myself replacing the Romanian locale with the attached one all the time. I don't know if it's better but it seems more natural. It uses "." as the date separator and also adds some alternate date formats, useful for entering just the day of the month, for example - trivial stuff, but useful.
Other Romanian users - your input would be appreciated. Maybe it will make it into the next build.


I personally like more to use of romanian localization formats.
In the attached file is a translation rebuilt from the ground, using ext-lang-en.js as base, with the following changes:
- I've included most of lucian's translations (see this post (http://www.extjs.com/forum/showthread.php?p=77600#post77600))
- I've used localization (date formats), as keypoint suggested here (http://www.extjs.com/forum/showthread.php?p=129524#post129524)
- I've made few small changes in few strings

mystix
28 Apr 2008, 6:26 PM
I personally like more to use of romanian localization formats.
In the attached file is a translation rebuilt from the ground, using ext-lang-en.js as base, with the following changes:
- I've included most of lucian's translations (see this post (http://www.extjs.com/forum/showthread.php?p=77600#post77600))
- I've used localization (date formats), as keypoint suggested here (http://www.extjs.com/forum/showthread.php?p=129524#post129524)
- I've made few small changes in few strings

added to SVN. thanks!

mschering
28 Apr 2008, 10:46 PM
The following is missing from the locale files:


if(Ext.form.BasicForm)
{
Ext.form.BasicForm.prototype.waitTitle = "Please wait...";
}

mystix
28 Apr 2008, 11:01 PM
The following is missing from the locale files:


if(Ext.form.BasicForm)
{
Ext.form.BasicForm.prototype.waitTitle = "Please wait...";
}


updated in SVN (ext-lang-en.js only). thanks.

the other translators will need to chime in on this.

p.s. anyone seen trbs lately? :-?

mschering
28 Apr 2008, 11:49 PM
For nl:

if(Ext.form.BasicForm)
{
Ext.form.BasicForm.prototype.waitTitle = "Even wachten a.u.b...";
}

mystix
28 Apr 2008, 11:55 PM
For nl:

if(Ext.form.BasicForm)
{
Ext.form.BasicForm.prototype.waitTitle = "Even wachten a.u.b...";
}

added to SVN. thanks :)

Ylodi
17 May 2008, 3:10 AM
Here is updated hr_HR translation (UTF-8, DOS/Windows line endings \r\n) based on the ext-lang-en.js from 2.1 version (and my old Croatian translation).

Greetings,
Stjepan

6878

lobo-tuerto
28 May 2008, 7:30 AM
Hello guys,


The spanish language localization file is lacking a spanish translation for TimeField.
When an invalid time is put inside the box, a message in english is shown.

brian.moeskau
4 Jun 2008, 3:01 AM
Russian short month names provided here (http://extjs.com/forum/showthread.php?p=177321#post177321) need to be added.

genus2200
18 Jun 2008, 6:27 AM
Hello,

Has an inconvenience in the current pt_BR locale file, the actual special characters (

disizben
19 Jun 2008, 6:41 AM
I've found a bug when using the ext-lang-fr and the 'F' date format.

Actually the problem comes from the locale file and the getMonthNumber function.

Here's the code I've used to fix it :

[CODE]Date.monthNumbers = {
"Janvier" : 0,
"F

nassaja-rus
27 Jun 2008, 6:46 AM
7790

Fixed bug with wrong Date.monthNumbers, small translation update based on lates ext-lang-en.js file from svn.

Warning! I'm update Date.getShortMonthName function, for сorrect writing of the short names of months according to rules of Russian language.

Before (wrong)


[ "Янв", "Фев", "Мар", "Апр", "Май", "Июн", "Июл", "Авг", "Сен", "Окт", "Ноя", "Дек" ];

After (correctly)


[ "Янв", "Февр", "Март", "Апр", "Май", "Июнь", "Июль", "Авг", "Сент", "Окт", "Нояб", "Дек" ];

nassaja-rus
27 Jun 2008, 7:00 AM
And you can add a new format for a writing month with declension, and to adhere it to function? Like Date.getShortMonthName() and 'M' format.

Example in russian "On December, 31st" will be "Декабрь, 31" but when I wish to write date in more human language it will be "31 декабря". It is especially actual for the Past and the Future Indefinite Tense. And quite often meets in forms.

mystix
27 Jun 2008, 7:19 AM
And you can add a new format for a writing month with declension, and to adhere it to function? Like Date.getShortMonthName() and 'M' format.

Example in russian "On December, 31st" will be "Декабрь, 31" but when I wish to write date in more human language it will be "31 декабря". It is especially actual for the Past and the Future Indefinite Tense. And quite often meets in forms.

i don't understand... any better examples?

nassaja-rus
27 Jun 2008, 8:06 AM
i don't understand... any better examples?

Ok, I will try. Globaly in cyrillic languages, such as Russian all words have many forms of declensions for various cases. Also the ending of words depend on the numeral to which they concern. It is complex.

Simple example - in English "1 month, 2 months, 3 months ... 12 months ... 121 months" "1 table, 2 tables ... 12 tables... 121 tables" etc. Only two, easily formalizable forms of a word for the sn. and pl.

But in Russian - "1 месяц, 2 месяца, 3 месяца ... 12 месяцев ... 121 месяц" "1 стол, 2 стола, три стола, 12 столов ... 121 стол" etc. There is three word forms with different word endings, that not easily formalizable.

In my case there is a difference in a writing month name in difficultly readable view "31, декабрь 2008" and easily readable view on "31 декабря 2008". In English it's simple - "31, December" and "December, 31st" - any difference.

Therefore I would like to have separate format and function for a writing of month name with declension. It is realized by addition of a array with the plural form of month names for Russian and addition of a new date format which will be write the plural form.

mystix
27 Jun 2008, 8:15 AM
ok i think i get it.

i'll be taking a look at the monthNames problem first...

the "ordinal suffix" thingy (or "declension" as you've called it) will have to wait. let me chew on it for a while.

nassaja-rus
27 Jun 2008, 8:51 AM
ok i think i get it.

i'll be taking a look at the monthNames problem first...

the "ordinal suffix" thingy (or "declension" as you've called it) will have to wait. let me chew on it for a while.

Yes, "ordinal suffix" is acceptable definition. What problem with monthNames? Where I can read about this problem?

mystix
27 Jun 2008, 9:08 AM
Yes, "ordinal suffix" is acceptable definition. What problem with monthNames? Where I can read about this problem?

i was referring to the russian locale fixes you posted here:
http://extjs.com/forum/showthread.php?t=39711

[edit]
finished the conversion to UTF8 for the code you posted. pasting the code here so i won't lose it:


Date.monthNames = [
'\u042F\u043D\u0432\u0430\u0440\u044C',
'\u0424\u0435\u0432\u0440\u0430\u043B\u044C',
'\u041C\u0430\u0440\u0442',
'\u0410\u043F\u0440\u0435\u043B\u044C',
'\u041C\u0430\u0439',
'\u0418\u044E\u043D\u044C',
'\u0418\u044E\u043B\u044C',
'\u0410\u0432\u0433\u0443\u0441\u0442',
'\u0421\u0435\u043D\u0442\u044F\u0431\u0440\u044C',
'\u041E\u043A\u0442\u044F\u0431\u0440\u044C',
'\u041D\u043E\u044F\u0431\u0440\u044C',
'\u0414\u0435\u043A\u0430\u0431\u0440\u044C'
];

Date.monthShortNames = [
'\u042F\u043D\u0432',
'\u0424\u0435\u0432',
'\u041C\u0430\u0440\u0442',
'\u0410\u043F\u0440',
'\u041C\u0430\u0439',
'\u0418\u044E\u043D\u044C',
'\u0418\u044E\u043B\u044C',
'\u0410\u0432\u0433',
'\u0421\u0435\u043D\u0442',
'\u041E\u043A\u0442',
'\u041D\u043E\u044F\u0431',
'\u0414\u0435\u043A'
];

Date.getShortMonthName = function(month) {
return Date.monthShortNames[month];
};

nassaja-rus
27 Jun 2008, 9:35 AM
i was referring to the russian locale fixes you posted here:
http://extjs.com/forum/showthread.php?t=39711

Look at http://extjs.com/forum/showthread.php?p=187717#post187717 There variant with all fixes. It work fine on my test page.

mystix
27 Jun 2008, 9:42 AM
Look at http://extjs.com/forum/showthread.php?p=187717#post187717 There variant with all fixes. It work fine on my test page.

could you check if you saved it in the correct format?

i downloaded the zip, opened the js file inside using notepad++ (which handles utf8 / ascii auto-detection flawlessly for me) and it appears like this:

http://img168.imageshack.us/img168/7710/200806280140ju3.png


p.s. if you could convert all characters to their utf8 counterparts (as i've done in the post above) it would solve all these issues. ;)

nassaja-rus
27 Jun 2008, 9:48 AM
May be you not have utf8 fonts with Cyrillic glyphs? If you use windows try ArialUnicode ttf font. I'm use linux, this is plain text utf8 file, and all fine for me.

This changed:




Date.monthNames = [ "Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь" ];
Date.monthShortNames = [ "Янв", "Февр", "Март", "Апр", "Май", "Июнь", "Июль", "Авг", "Сент", "Окт", "Нояб", "Дек" ];

Date.getShortMonthName = function(month)
{
return Date.monthShortNames[month];
};

Date.monthNumbers = {
'Янв': 0,
'Фев': 1,
'Мар': 2,
'Апр': 3,
'Май': 4,
'Июн': 5,
'Июл': 6,
'Авг': 7,
'Сен': 8,
'Окт': 9,
'Ноя': 10,
'Дек': 11
};


This added:



if (Ext.form.BasicForm)
{
Ext.form.BasicForm.prototype.waitTitle = "Пожалуйста подождите...";
}

nassaja-rus
27 Jun 2008, 9:58 AM
IMHO convert all to \uxxxx notation is bad idea. All unicode sense is lost =)

mystix
27 Jun 2008, 10:40 AM
IMHO convert all to \uxxxx notation is bad idea. All unicode sense is lost =)

well imho all "unicode sense" is preserved. ;)

but i see what you mean when it comes to maintenance -- translators are going to have a heck of a time figuring stuff out unless they do an encode first.

plus i learnt something new today -- now i know why i see dashes for all the cyrillic locale files. d'oh!

nassaja-rus
27 Jun 2008, 11:02 AM
English-speaking people also do not represent, that such to have five!!! different encodings for language. So unicode - this is rescue =) though with it in due time was necessary to do some fighting strongly. Please, it is not necessary to return this hell back =)

Now everything is all right with Cyrillic in files?

P.S. I am strongly interested in support high-grade Cyrillic localization. I can provide any help for this.

fermo111
1 Jul 2008, 5:36 AM
An addition to the Italian translation:


Date.monthNumbers = {
Gen : 0,
Feb : 1,
Mar : 2,
Apr : 3,
Mag : 4,
Giu : 5,
Lug : 6,
Ago : 7,
Set : 8,
Ott : 9,
Nov : 10,
Dic : 11
};

ut_paule
30 Jul 2008, 4:27 PM
Using ExtJS 2.1, the file for the UK ends in "en_UK", any chance you can rename this in the next release to "en_GB" which would be in line with the ISO naming use in both java and by the browsers.

In addition is there a simple way i am missing to have the correct file load based on the locale of the browser. With a java backend i have done the following, but i'm sure there must be an easier way that i have missed....



<%!
public static final String[] SUPPORTED_LOCALES = new String[] {"af","bg","ca","cs","da","de","el_GR","en_GB","en","es","fa","fr_CA","fr","gr","he","hr","hu","id","it","ja","ko","lt","lv","mk","nl","no_NB","no_NN","pl","pt_BR","pt","ro","ru","sk","sl","sr_RS","sr","sv_SE","th","tr","ukr","vn","zh_CN","zh_TW"};
%><%
if(request.getLocale()!=null) {
String currentLocale = null;
String locale = request.getLocale().toString();
System.out.println("Current Locale = "+locale);
// This allows country locales (like en_US) to default to just language
// local (like 'en') if there is not a country specific one
for(String l : SUPPORTED_LOCALES)
if(locale.startsWith(l)) {
System.out.println("Found matching Locale = "+l);
currentLocale=l;
break;
}
if(currentLocale!=null){

// Fix for some extjs files where the name does not match the correct ISO lang_Country code
if("en_GB".equals(currentLocale))
currentLocale="en_UK";

%><script type="text/javascript" src="js/extjs/locale/ext-lang-<%=currentLocale%>.js"></script><%
}
}%>

Thanks

mystix
4 Aug 2008, 12:14 PM
posts #268 onwards (excluding post #271) will be making their way into SVN in the next few hours. are in SVN. didn't make it into 2.2 though. my bad.

p.s. thanks to all who contributed!

Thylia
5 Aug 2008, 2:54 AM
I translate into French, the latesd updates:
[CODE]

if(Ext.form.CheckboxGroup){
Ext.apply(Ext.form.TextField.prototype, {
blankText : "Vous devez s

mystix
5 Aug 2008, 5:47 AM
[QUOTE=Thylia;204409]I translate into French, the latesd updates:
[CODE]

if(Ext.form.CheckboxGroup){
Ext.apply(Ext.form.TextField.prototype, {
blankText : "Vous devez s

rion
7 Aug 2008, 1:00 AM
heh, russian months shortnames still not fixed in 2.2 ...

mystix
7 Aug 2008, 1:37 AM
@rion,


posts #268 onwards (excluding post #271) will be making their way into SVN in the next few hours. are in SVN. didn't make it into 2.2 though. my bad.

p.s. thanks to all who contributed!

here's the fixed copy in SVN if you need it.


/*
* Ext JS Library 2.2
* Copyright(c) 2006-2008, Ext JS, LLC.
* licensing@extjs.com
*
* http://extjs.com/license
*/

/*
* Russian translation
* By ZooKeeper (utf-8 encoding)
* 6 November 2007
*/

Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Идет загрузка...</div>';

if(Ext.View){
Ext.View.prototype.emptyText = "";
}

if(Ext.grid.GridPanel){
Ext.grid.GridPanel.prototype.ddText = "{0} выбранных строк";
}

if(Ext.TabPanelItem){
Ext.TabPanelItem.prototype.closeText = "Закрыть эту вкладку";
}

if(Ext.form.Field){
Ext.form.Field.prototype.invalidText = "Значение в этом поле неверное";
}

if(Ext.LoadMask){
Ext.LoadMask.prototype.msg = "Загрузка...";
}

Date.monthNames = [
"Январь",
"Февраль",
"Март",
"Апрель",
"Май",
"Июнь",
"Июль",
"Август",
"Сентябрь",
"Октябрь",
"Ноябрь",
"Декабрь"
];

Date.shortMonthNames = [
"Янв",
"Февр",
"Март",
"Апр",
"Май",
"Июнь",
"Июль",
"Авг",
"Сент",
"Окт",
"Нояб",
"Дек"
];

Date.getShortMonthName = function(month) {
return Date.shortMonthNames[month];
};

Date.monthNumbers = {
'Янв': 0,
'Фев': 1,
'Мар': 2,
'Апр': 3,
'Май': 4,
'Июн': 5,
'Июл': 6,
'Авг': 7,
'Сен': 8,
'Окт': 9,
'Ноя': 10,
'Дек': 11
};

Date.getMonthNumber = function(name) {
return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
};

Date.dayNames = [
"Воскресенье",
"Понедельник",
"Вторник",
"Среда",
"Четверг",
"Пятница",
"Суббота"
];

Date.getShortDayName = function(day) {
return Date.dayNames[day].substring(0, 3);
};

if(Ext.MessageBox){
Ext.MessageBox.buttonText = {
ok : "OK",
cancel : "Отмена",
yes : "Да",
no : "Нет"
};
}

if(Ext.util.Format){
Ext.util.Format.date = function(v, format){
if(!v) return "";
if(!(v instanceof Date)) v = new Date(Date.parse(v));
return v.dateFormat(format || "d.m.Y");
};
}

if(Ext.DatePicker){
Ext.apply(Ext.DatePicker.prototype, {
todayText : "Сегодня",
minText : "Эта дата раньше минимальной даты",
maxText : "Эта дата позже максимальной даты",
disabledDaysText : "",
disabledDatesText : "",
monthNames : Date.monthNames,
dayNames : Date.dayNames,
nextText : 'Следующий месяц (Control+Вправо)',
prevText : 'Предыдущий месяц (Control+Влево)',
monthYearText : 'Выбор месяца (Control+Вверх/Вниз для выбора года)',
todayTip : "{0} (Пробел)",
format : "d.m.y",
okText : "*OK*",
cancelText : "Отмена",
startDay : 1
});
}

if(Ext.PagingToolbar){
Ext.apply(Ext.PagingToolbar.prototype, {
beforePageText : "Страница",
afterPageText : "из {0}",
firstText : "Первая страница",
prevText : "Предыдущая страница",
nextText : "Следующая страница",
lastText : "Последняя страница",
refreshText : "Обновить",
displayMsg : "Отображаются записи с {0} по {1}, всего {2}",
emptyMsg : 'Нет данных для отображения'
});
}

if(Ext.form.TextField){
Ext.apply(Ext.form.TextField.prototype, {
minLengthText : "Минимальная длина этого поля {0}",
maxLengthText : "Максимальная длина этого поля {0}",
blankText : "Это поле обязательно для заполнения",
regexText : "",
emptyText : null
});
}

if(Ext.form.NumberField){
Ext.apply(Ext.form.NumberField.prototype, {
minText : "Значение этого поля не может быть меньше {0}",
maxText : "Значение этого поля не может быть больше {0}",
nanText : "{0} не является числом"
});
}

if(Ext.form.DateField){
Ext.apply(Ext.form.DateField.prototype, {
disabledDaysText : "Не доступно",
disabledDatesText : "Не доступно",
minText : "Дата в этом поле должна быть позде {0}",
maxText : "Дата в этом поле должна быть раньше {0}",
invalidText : "{0} не является правильной датой - дата должна быть указана в формате {1}",
format : "d.m.y",
altFormats : "d.m.y|d/m/Y|d-m-y|d-m-Y|d/m|d-m|dm|dmy|dmY|d|Y-m-d"
});
}

if(Ext.form.ComboBox){
Ext.apply(Ext.form.ComboBox.prototype, {
loadingText : "Загрузка...",
valueNotFoundText : undefined
});
}

if(Ext.form.VTypes){
Ext.apply(Ext.form.VTypes, {
emailText : 'Это поле должно содержать адрес электронной почты в формате "user@domain.com"',
urlText : 'Это поле должно содержать URL в формате "http:/'+'/www.domain.com"',
alphaText : 'Это поле должно содержать только латинские буквы и символ подчеркивания "_"',
alphanumText : 'Это поле должно содержать только латинские буквы, цифры и символ подчеркивания "_"'
});
}

if(Ext.form.HtmlEditor){
Ext.apply(Ext.form.HtmlEditor.prototype, {
createLinkText : 'Пожалуйста введите адрес:',
buttonTips : {
bold : {
title: 'Полужирный (Ctrl+B)',
text: 'Применение полужирного начертания к выделенному тексту.',
cls: 'x-html-editor-tip'
},
italic : {
title: 'Курсив (Ctrl+I)',
text: 'Применение курсивного начертания к выделенному тексту.',
cls: 'x-html-editor-tip'
},
underline : {
title: 'Подчёркнутый (Ctrl+U)',
text: 'Подчёркивание выделенного текста.',
cls: 'x-html-editor-tip'
},
increasefontsize : {
title: 'Увеличить размер',
text: 'Увеличение размера шрифта.',
cls: 'x-html-editor-tip'
},
decreasefontsize : {
title: 'Уменьшить размер',
text: 'Уменьшение размера шрифта.',
cls: 'x-html-editor-tip'
},
backcolor : {
title: 'Заливка',
text: 'Изменение цвета фона для выделенного текста или абзаца.',
cls: 'x-html-editor-tip'
},
forecolor : {
title: 'Цвет текста',
text: 'Измение цвета текста.',
cls: 'x-html-editor-tip'
},
justifyleft : {
title: 'Выровнять текст по левому краю',
text: 'Выровнивание текста по левому краю.',
cls: 'x-html-editor-tip'
},
justifycenter : {
title: 'По центру',
text: 'Выровнивание текста по центру.',
cls: 'x-html-editor-tip'
},
justifyright : {
title: 'Выровнять текст по правому краю',
text: 'Выровнивание текста по правому краю.',
cls: 'x-html-editor-tip'
},
insertunorderedlist : {
title: 'Маркеры',
text: 'Начать маркированный список.',
cls: 'x-html-editor-tip'
},
insertorderedlist : {
title: 'Нумерация',
text: 'Начать нумернованный список.',
cls: 'x-html-editor-tip'
},
createlink : {
title: 'Вставить гиперссылку',
text: 'Создание ссылки из выделенного текста.',
cls: 'x-html-editor-tip'
},
sourceedit : {
title: 'Исходный код',
text: 'Переключиться на исходный код.',
cls: 'x-html-editor-tip'
}
}
});
}

if(Ext.form.BasicForm){
Ext.form.BasicForm.prototype.waitTitle = "Пожалуйста подождите...";
}

if(Ext.grid.GridView){
Ext.apply(Ext.grid.GridView.prototype, {
sortAscText : "Сортировать по возрастанию",
sortDescText : "Сортировать по убыванию",
lockText : "Закрепить столбец",
unlockText : "Снять закрепление столбца",
columnsText : "Столбцы"
});
}

if(Ext.grid.GroupingView){
Ext.apply(Ext.grid.GroupingView.prototype, {
emptyGroupText : '(Пусто)',
groupByText : 'Группировать по этому полю',
showGroupsText : 'Отображать по группам'
});
}

if(Ext.grid.PropertyColumnModel){
Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
nameText : "Название",
valueText : "Значение",
dateFormat : "d.m.Y"
});
}

if(Ext.SplitLayoutRegion){
Ext.apply(Ext.SplitLayoutRegion.prototype, {
splitTip : "Тяните для изменения размера.",
collapsibleSplitTip : "Тяните для изменения размера. Двойной щелчок спрячет панель."
});
}

if(Ext.layout.BorderLayout && Ext.layout.BorderLayout.SplitRegion){
Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
splitTip : "Тяните для изменения размера.",
collapsibleSplitTip : "Тяните для изменения размера. Двойной щелчок спрячет панель."
});
}

Condor
7 Aug 2008, 4:28 AM
I noticed I made a small mistake in the dutch translation (exchanged the default and the alternative for the march short name):


Date.monthNumbers = {
jan: 0,
feb: 1,
mrt: 2,
apr: 3,
mei: 4,
jun: 5,
jul: 6,
aug: 7,
sep: 8,
okt: 9,
nov: 10,
dec: 11
};

Date.getMonthNumber = function(name) {
var sname = name.substring(0, 3).toLowerCase();
if (sname == 'maa') {
return 2;
}
return Date.monthNumbers[sname];
};

mystix
7 Aug 2008, 4:34 AM
I noticed I made a small mistake in the dutch translation (exchanged the default and the alternative for the march short name):


Date.monthNumbers = {
jan: 0,
feb: 1,
mrt: 2,
apr: 3,
mei: 4,
jun: 5,
jul: 6,
aug: 7,
sep: 8,
okt: 9,
nov: 10,
dec: 11
};

Date.getMonthNumber = function(name) {
var sname = name.substring(0, 3).toLowerCase();
if (sname == 'maa') {
return 2;
}
return Date.monthNumbers[sname];
};

do you have svn commit rights?
or do you want me to commit those changes for you (only in the morning though... no access from home)

Condor
7 Aug 2008, 5:08 AM
That would be nice, I don't have SVN commit rights.

mystix
7 Aug 2008, 5:37 AM
@condor

is your name Ido Sebastiaan Bas van Oostveen? :-?

thanks.

p.s. you might want to add translations for the new CheckboxGroup / RadioGroup components etc (see post #239)

Condor
7 Aug 2008, 11:10 PM
is your name Ido Sebastiaan Bas van Oostveen? :-?

No, but I made the suggestions for all changes to the original dutch version.

I included a new dutch translation with CheckboxGroup and RadioGroup.

I also included a new english version, because most people use this as a basis for new translations.

Corrections in the english version:

Renamed Ext.View to Ext.DataView
Modified Ext.grid.GridPanel.prototype.ddText
Removed Ext.TabPanelItem
Added Date.parseCodes.S.s
Added decimalSeparator and decimalPrecision to Ext.form.NumberField
Removed Ext.form.BasicForm.prototype.waitTitle
Removed lockText and unlockText from Ext.grid.GridView
Added Ext.form.TimeField
Added Ext.form.CheckboxGroup
Added Ext.form.RadioGroup


I recommend that the creators of the other language files update their translations accordingly.

mystix
7 Aug 2008, 11:37 PM
woah. thanks! :D
i've committed them to SVN.

p.s i've changed all line endings to unix-style LFs, and added your nick to the english locale file.
(i've also updated your attachments accordingly). also updated ext-lang-en_GB.js

rion
11 Aug 2008, 10:59 PM
@rion,

here's the fixed copy in SVN if you need it.
.....
this fix doesn't work for me. when i change date format, date resets to current date.
only working fix is here http://extjs.com/forum/showthread.php?p=176981

UPDATE: my bad. its really works

mystix
11 Aug 2008, 11:05 PM
this fix doesn't work for me. when i change date format, date resets to current date.
only working fix is here http://extjs.com/forum/showthread.php?p=176981

that fixed locale file is what's in SVN, and is merely a copy-paste of the changes you proposed in 176981. should i be looking out for anything else?

[edit]
i just noticed you posted fixes for the monthNumbers array, but you mentioned month shortnames in that post.
did you mean to fix the shortMonthNames array instead (the month names in the Date.monthNumbers array are currently shorter than the month names in the Date.shortMonthNames array)?

rion
11 Aug 2008, 11:17 PM
that fixed locale file is what's in SVN, and is merely a copy-paste of the changes you proposed in 176981. should i be looking out for anything else?

[edit]
i just noticed you posted fixes for the monthNumbers array, but you mentioned month shortnames in that post.
did you mean to fix the shortMonthNames array instead (the month names in the Date.monthNumbers array are currently shorter than the month names in the Date.shortMonthNames array)?
i'm sorry, i was mistaken. just incorrect test. it works
thanks for fix :-)

mystix
11 Aug 2008, 11:22 PM
i'm sorry, i was mistaken. just incorrect test. it works

hooray.

Sakuro
12 Aug 2008, 1:10 AM
I'd like to add some translations to ext-lang-ja.js.



--- ext-lang-ja.js.orig 2008-08-12 17:55:57.000000000 +0900
+++ ext-lang-ja.js 2008-08-12 17:39:21.000000000 +0900
@@ -136,7 +136,14 @@
sortDescText : "降順",
lockText : "カラムロック",
unlockText : "カラムロック解除",
- columnsText : "Columns"
+ columnsText : "カラム"
+ });
+}
+
+if(Ext.grid.GroupingView){
+ Ext.apply(Ext.grid.GroupingView.prototype, {
+ groupByText : "このカラムでグルーピング",
+ showGroupsText: "グルーピング"
});
}

mystix
12 Aug 2008, 1:19 AM
I'd like to add some translations to ext-lang-ja.js.



--- ext-lang-ja.js.orig 2008-08-12 17:55:57.000000000 +0900
+++ ext-lang-ja.js 2008-08-12 17:39:21.000000000 +0900
@@ -136,7 +136,14 @@
sortDescText : "降順",
lockText : "カラムロック",
unlockText : "カラムロック解除",
- columnsText : "Columns"
+ columnsText : "カラム"
+ });
+}
+
+if(Ext.grid.GroupingView){
+ Ext.apply(Ext.grid.GroupingView.prototype, {
+ groupByText : "このカラムでグルーピング",
+ showGroupsText: "グルーピング"
});
}

他の翻訳は正しいですか?

if you could check @condor's updated ext-lang-en.js file (http://extjs.com/forum/showthread.php?p=206445#post206445) for Ext 2.2 against the japanese locale file in the official download that would help. どうも :)

halkon_polako
14 Aug 2008, 10:51 AM
Hi!!

Here are attached the updated translations of Catalonian and Spanish languages based on the Condor's version ext-lang-en.js file (http://extjs.com/forum/showthread.php?p=206445#post206445).

Regards

Sakuro
18 Aug 2008, 6:14 PM
他の翻訳は正しいですか?

if you could check @condor's updated ext-lang-en.js file (http://extjs.com/forum/showthread.php?p=206445#post206445) for Ext 2.2 against the japanese locale file in the official download that would help. どうも :)

OK. I'll check the files in my spare time within a couple of weeks.

timb
29 Aug 2008, 9:14 AM
I have found a problem with JSBuilder and the locale files. If you notice that your text in jumbled up, it may be an encoding problem. JSBuilder has a problem if your first file is encoded in ANSI and subsequent files are encoded in UTF-8 (recommended coding for locale files). For more details including a workaround, please see the following post:
http://extjs.com/forum/showthread.php?p=216332#post216332

Sakuro
29 Aug 2008, 9:18 AM
OK. I'll check the files in my spare time within a couple of weeks.

Here it is.

Major Changes:
- some labels are gone from english files, so are corresponding japanese.
(ex. lockText in Grid)
- added translations for HTMLEditor, TimeField, CheckboxGroup and RadioGroup.

If we can localize AM/PM in time format, it is better to use 'Ag:i' instead of 'g:i A'
at since the latter is conventional in Japan. AM/PM in japanese are 午前/午後 respectively
and are prefixed to the time value without whitespace.

mystix
29 Aug 2008, 9:26 AM
Here it is.

Major Changes:
- some labels are gone from english files, so are corresponding japanese.
(ex. lockText in Grid)
- added translations for HTMLEditor, TimeField, CheckboxGroup and RadioGroup.

If we can localize AM/PM in time format, it is better to use 'Ag:i' instead of 'g:i A'
at since the latter is conventional in Japan. AM/PM in japanese are 午前/午後 respectively
and are prefixed to the time value without whitespace.
thanks for the update, though i think you used an older version of the english locale file.
i've pasted the latest english locale file (updated by @condor in http://extjs.com/forum/showthread.php?p=206445#post206445) below for your reference:


/**
* List compiled by mystix on the extjs.com forums.
* Thank you Mystix!
*
* English Translations
* updated to 2.2 by Condor (8 Aug 2008)
*/

Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">Loading...</div>';

if(Ext.DataView){
Ext.DataView.prototype.emptyText = "";
}

if(Ext.grid.GridPanel){
Ext.grid.GridPanel.prototype.ddText = "{0} selected row{1}";
}

if(Ext.LoadMask){
Ext.LoadMask.prototype.msg = "Loading...";
}

Date.monthNames = [
"January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December"
];

Date.getShortMonthName = function(month) {
return Date.monthNames[month].substring(0, 3);
};

Date.monthNumbers = {
Jan : 0,
Feb : 1,
Mar : 2,
Apr : 3,
May : 4,
Jun : 5,
Jul : 6,
Aug : 7,
Sep : 8,
Oct : 9,
Nov : 10,
Dec : 11
};

Date.getMonthNumber = function(name) {
return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
};

Date.dayNames = [
"Sunday",
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday"
];

Date.getShortDayName = function(day) {
return Date.dayNames[day].substring(0, 3);
};

Date.parseCodes.S.s = "(?:st|nd|rd|th)";

if(Ext.MessageBox){
Ext.MessageBox.buttonText = {
ok : "OK",
cancel : "Cancel",
yes : "Yes",
no : "No"
};
}

if(Ext.util.Format){
Ext.util.Format.date = function(v, format){
if(!v) return "";
if(!(v instanceof Date)) v = new Date(Date.parse(v));
return v.dateFormat(format || "m/d/Y");
};
}

if(Ext.DatePicker){
Ext.apply(Ext.DatePicker.prototype, {
todayText : "Today",
minText : "This date is before the minimum date",
maxText : "This date is after the maximum date",
disabledDaysText : "",
disabledDatesText : "",
monthNames : Date.monthNames,
dayNames : Date.dayNames,
nextText : 'Next Month (Control+Right)',
prevText : 'Previous Month (Control+Left)',
monthYearText : 'Choose a month (Control+Up/Down to move years)',
todayTip : "{0} (Spacebar)",
format : "m/d/y",
okText : "*OK*",
cancelText : "Cancel",
startDay : 0
});
}

if(Ext.PagingToolbar){
Ext.apply(Ext.PagingToolbar.prototype, {
beforePageText : "Page",
afterPageText : "of {0}",
firstText : "First Page",
prevText : "Previous Page",
nextText : "Next Page",
lastText : "Last Page",
refreshText : "Refresh",
displayMsg : "Displaying {0} - {1} of {2}",
emptyMsg : 'No data to display'
});
}

if(Ext.form.Field){
Ext.form.Field.prototype.invalidText = "The value in this field is invalid";
}

if(Ext.form.TextField){
Ext.apply(Ext.form.TextField.prototype, {
minLengthText : "The minimum length for this field is {0}",
maxLengthText : "The maximum length for this field is {0}",
blankText : "This field is required",
regexText : "",
emptyText : null
});
}

if(Ext.form.NumberField){
Ext.apply(Ext.form.NumberField.prototype, {
decimalSeparator : ".",
decimalPrecision : 2,
minText : "The minimum value for this field is {0}",
maxText : "The maximum value for this field is {0}",
nanText : "{0} is not a valid number"
});
}

if(Ext.form.DateField){
Ext.apply(Ext.form.DateField.prototype, {
disabledDaysText : "Disabled",
disabledDatesText : "Disabled",
minText : "The date in this field must be after {0}",
maxText : "The date in this field must be before {0}",
invalidText : "{0} is not a valid date - it must be in the format {1}",
format : "m/d/y",
altFormats : "m/d/Y|m-d-y|m-d-Y|m/d|m-d|md|mdy|mdY|d|Y-m-d"
});
}

if(Ext.form.ComboBox){
Ext.apply(Ext.form.ComboBox.prototype, {
loadingText : "Loading...",
valueNotFoundText : undefined
});
}

if(Ext.form.VTypes){
Ext.apply(Ext.form.VTypes, {
emailText : 'This field should be an e-mail address in the format "user@domain.com"',
urlText : 'This field should be a URL in the format "http:/'+'/www.domain.com"',
alphaText : 'This field should only contain letters and _',
alphanumText : 'This field should only contain letters, numbers and _'
});
}

if(Ext.form.HtmlEditor){
Ext.apply(Ext.form.HtmlEditor.prototype, {
createLinkText : 'Please enter the URL for the link:',
buttonTips : {
bold : {
title: 'Bold (Ctrl+B)',
text: 'Make the selected text bold.',
cls: 'x-html-editor-tip'
},
italic : {
title: 'Italic (Ctrl+I)',
text: 'Make the selected text italic.',
cls: 'x-html-editor-tip'
},
underline : {
title: 'Underline (Ctrl+U)',
text: 'Underline the selected text.',
cls: 'x-html-editor-tip'
},
increasefontsize : {
title: 'Grow Text',
text: 'Increase the font size.',
cls: 'x-html-editor-tip'
},
decreasefontsize : {
title: 'Shrink Text',
text: 'Decrease the font size.',
cls: 'x-html-editor-tip'
},
backcolor : {
title: 'Text Highlight Color',
text: 'Change the background color of the selected text.',
cls: 'x-html-editor-tip'
},
forecolor : {
title: 'Font Color',
text: 'Change the color of the selected text.',
cls: 'x-html-editor-tip'
},
justifyleft : {
title: 'Align Text Left',
text: 'Align text to the left.',
cls: 'x-html-editor-tip'
},
justifycenter : {
title: 'Center Text',
text: 'Center text in the editor.',
cls: 'x-html-editor-tip'
},
justifyright : {
title: 'Align Text Right',
text: 'Align text to the right.',
cls: 'x-html-editor-tip'
},
insertunorderedlist : {
title: 'Bullet List',
text: 'Start a bulleted list.',
cls: 'x-html-editor-tip'
},
insertorderedlist : {
title: 'Numbered List',
text: 'Start a numbered list.',
cls: 'x-html-editor-tip'
},
createlink : {
title: 'Hyperlink',
text: 'Make the selected text a hyperlink.',
cls: 'x-html-editor-tip'
},
sourceedit : {
title: 'Source Edit',
text: 'Switch to source editing mode.',
cls: 'x-html-editor-tip'
}
}
});
}

if(Ext.grid.GridView){
Ext.apply(Ext.grid.GridView.prototype, {
sortAscText : "Sort Ascending",
sortDescText : "Sort Descending",
columnsText : "Columns"
});
}

if(Ext.grid.GroupingView){
Ext.apply(Ext.grid.GroupingView.prototype, {
emptyGroupText : '(None)',
groupByText : 'Group By This Field',
showGroupsText : 'Show in Groups'
});
}

if(Ext.grid.PropertyColumnModel){
Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
nameText : "Name",
valueText : "Value",
dateFormat : "m/j/Y"
});
}

if(Ext.layout.BorderLayout && Ext.layout.BorderLayout.SplitRegion){
Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
splitTip : "Drag to resize.",
collapsibleSplitTip : "Drag to resize. Double click to hide."
});
}

if(Ext.form.TimeField){
Ext.apply(Ext.form.TimeField.prototype, {
minText : "The time in this field must be equal to or after {0}",
maxText : "The time in this field must be equal to or before {0}",
invalidText : "{0} is not a valid time",
format : "g:i A",
altFormats : "g:ia|g:iA|g:i a|g:i A|h:i|g:i|H:i|ga|ha|gA|h a|g a|g A|gi|hi|gia|hia|g|H"
});
}

if(Ext.form.CheckboxGroup){
Ext.apply(Ext.form.CheckboxGroup.prototype, {
blankText : "You must select at least one item in this group"
});
}

if(Ext.form.RadioGroup){
Ext.apply(Ext.form.RadioGroup.prototype, {
blankText : "You must select one item in this group"
});
}

@condor's updated english locale file contains localisation code for the TimeField, so you can adjust the default format as you've described.

p.s. post back here again when you've added the locale code for the TimeField + any other missing code from @condor's english locale file. thanks for contributing! ;)

dj
29 Aug 2008, 1:40 PM
This thread http://extjs.com/forum/showthread.php?t=45512 (last two posts) has fixes for the French and German locale.

Sakuro
29 Aug 2008, 9:11 PM
Updated.

* Date.getShortDayName, Date.getShortMonthName and Date.getMonthNumber are implemented.
* Date.formatCodes.a, A is translated.
* Date.parseCodes.S.s is left untouched.

Must I use Date.monthNumbers hash?

Modern japanese calendrical system has no idea of month names and getMonthNumber can be defined without it as below:


// leave Date.monthNumbers untranslated and
Date.getMonthNumber = function(name) {
return parseInt(name.substring(0, name.length - 1)) - 1; // just remove '月' (month) suffix
};

mystix
31 Aug 2008, 9:59 PM
Hi!!

Here are attached the updated translations of Catalonian and Spanish languages based on the Condor's version ext-lang-en.js file (http://extjs.com/forum/showthread.php?p=206445#post206445).

Regards

added to SVN. thanks!



I have found a problem with JSBuilder and the locale files. If you notice that your text in jumbled up, it may be an encoding problem. JSBuilder has a problem if your first file is encoded in ANSI and subsequent files are encoded in UTF-8 (recommended coding for locale files). For more details including a workaround, please see the following post:
http://extjs.com/forum/showthread.php?p=216332#post216332

i've checked all locale files, and each locale file belongs to one of 3 encodings:

ANSI
UTF-8 without BOM
UTF-8

could we have the respective locale maintainers (or anyone who spots an incorrect locale file encoding) check their file encodings and submit updates if necessary?
thanks!



This thread http://extjs.com/forum/showthread.php?t=45512 (last two posts) has fixes for the French and German locale.

i've made changes to the french locale patch suggested by the OP (in http://extjs.com/forum/showthread.php?t=45512) as the suggested patch appears incorrect (i've replied in that thread).
i've also updated the german locale file with your patch. thanks! :)



Updated.

* Date.getShortDayName, Date.getShortMonthName and Date.getMonthNumber are implemented.
* Date.formatCodes.a, A is translated.
* Date.parseCodes.S.s is left untouched.

Must I use Date.monthNumbers hash?

Modern japanese calendrical system has no idea of month names and getMonthNumber can be defined without it as below:


// leave Date.monthNumbers untranslated and
Date.getMonthNumber = function(name) {
return parseInt(name.substring(0, name.length - 1)) - 1; // just remove '?' (month) suffix
};

the Date.monthNumbers hash is required by some locales (i.e. roman alphabet-based languages), but in your case you don't have to use it (your Date.getMonthNumber() implementation is fine).
(you might however want to consider using the Date.monthNumbers hash for more traditional month names in the form of 一月、十二月 etc. let me know if you decide to implement this.)
i've added your changes to SVN. thanks for contributing!

ZooKeeper
1 Sep 2008, 12:49 AM
In my opinion all js files have to be in UTF-8 without BOM regardless of the content.

timb
1 Sep 2008, 10:26 AM
i've checked all locale files, and each locale file belongs to one of 3 encodings:

ANSI
UTF-8 without BOM
UTF-8

could we have the respective locale maintainers (or anyone who spots an incorrect locale file encoding) check their file encodings and submit updates if necessary?
thanks!


I think this is a good first step. However, even if the locale files are UTF-8, there's still a chance that the built files will be messed up, as JSBuilder uses the encoding of the first file that you select. For example, if you use JSBuilder and select ext-all.js and a locale file encoded with UTF-8, the built files will have ANSI encoding (since the first file - ext-all.js - is encoding using ANSI). I think JSBuilder will need to be updated to handle this scenario.


In my opinion all js files have to be in UTF-8 without BOM regardless of the content.
Why do you suggest using UTF-8 without BOM as apposed to UTF-8 with BOM?

enterco
1 Sep 2008, 10:36 AM
I personally like more to use of romanian localization formats.
In the attached file is a translation rebuilt from the ground, using ext-lang-en.js as base, with the following changes:
- I've included most of lucian's translations (see this post (http://www.extjs.com/forum/showthread.php?p=77600#post77600))
- I've used localization (date formats), as keypoint suggested here (http://www.extjs.com/forum/showthread.php?p=129524#post129524)
- I've made few small changes in few strings

Here it is an updated version of the romanian locale file.

Sakuro
1 Sep 2008, 9:53 PM
(you might however want to consider using the Date.monthNumbers hash for more traditional month names in the form of 一月、十二月 etc. let me know if you decide to implement this.)

Yes 一月/十二月 etc.(kanji numerals + '月') are more traditional, but arabic is fine.
It is well accepted to write numbers with arabic numerals when writing Japanese text horizontally.

mystix
1 Sep 2008, 10:21 PM
Here it is an updated version of the romanian locale file.

committed to SVN. thanks!

descheret
5 Sep 2008, 6:43 AM
hello - is there already a finnish translation - if not I can organize one - are there other languages missing?

Condor
5 Sep 2008, 8:18 AM
There are translations for:

ext-lang-af.js
ext-lang-bg.js
ext-lang-ca.js
ext-lang-cs.js
ext-lang-da.js
ext-lang-de.js
ext-lang-el_GR.js
ext-lang-en.js
ext-lang-en_UK.js
ext-lang-es.js
ext-lang-fa.js
ext-lang-fr.js
ext-lang-fr_CA.js
ext-lang-gr.js
ext-lang-he.js
ext-lang-hr.js
ext-lang-hu.js
ext-lang-id.js
ext-lang-it.js
ext-lang-ja.js
ext-lang-ko.js
ext-lang-lt.js
ext-lang-lv.js
ext-lang-mk.js
ext-lang-nl.js
ext-lang-no_NB.js
ext-lang-no_NN.js
ext-lang-pl.js
ext-lang-pt.js
ext-lang-pt_BR.js
ext-lang-ro.js
ext-lang-ru.js
ext-lang-sk.js
ext-lang-sl.js
ext-lang-sr.js
ext-lang-sr_RS.js
ext-lang-sv_SE.js
ext-lang-th.js
ext-lang-tr.js
ext-lang-ukr.js
ext-lang-vn.js
ext-lang-zh_CN.js
ext-lang-zh_TW.js
(see the source/locale directory in the Ext 2.2 SDK)

disizben
22 Sep 2008, 5:59 AM
Hi all,

I've just updated the french translation with Ext 2.2 changes ;)

disizben

descheret
23 Sep 2008, 12:25 AM
hello,

here is a first draft of the finish translation, there some words missing and the date format isn't updated yet too. I'll try to get the rest finished

Zyclops
28 Sep 2008, 7:29 PM
Very minor request... add d/m/y to the uk locale:

altFormats : "d/m/Y|d/m/y|d-m-y|d-m-Y|d/m|d-m|dm|dmy|dmY|d|Y-m-d"

YargicX
5 Oct 2008, 2:22 AM
Corrected Turkish translation based on version 2.2

mystix
28 Oct 2008, 6:18 PM
Hi all,

I've just updated the french translation with Ext 2.2 changes ;)

disizben


Very minor request... add d/m/y to the uk locale:

altFormats : "d/m/Y|d/m/y|d-m-y|d-m-Y|d/m|d-m|dm|dmy|dmY|d|Y-m-d"


Corrected Turkish translation based on version 2.2

all in SVN. thanks :)




hello,

here is a first draft of the finish translation, there some words missing and the date format isn't updated yet too. I'll try to get the rest finished

last i checked, there's already a finnish translation in SVN (see attachment).
are there any glaring differences between that and yours?

francodacosta
11 Nov 2008, 3:19 PM
Hy,

I want to contribute with the Portuguese (pt-PT) translation that was missing

[CODE]/**
* Ext 2.2.0 - Portuguese/Portugal (pt_PT) Translation
* by Nuno Franco da Costa - francodacosta.com
* translated from ext-lang-en.js
* 11 Nov 2008
*/

Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">A carregar...</div>';

if(Ext.View){
Ext.View.prototype.emptyText = "";
}

if(Ext.grid.GridPanel){
Ext.grid.GridPanel.prototype.ddText = "{0} linha(s) seleccionada(s)";
}

if(Ext.TabPanelItem){
Ext.TabPanelItem.prototype.closeText = "Fechar aba";
}

if(Ext.LoadMask){
Ext.LoadMask.prototype.msg = "A carregar...";
}

Date.monthNames = [
"Janeiro",
"Fevereiro",
"Mar&ccedil;o",
"Abril",
"Maio",
"Junho",
"Julho",
"Agosto",
"Setembro",
"Outubro",
"Novembro",
"Dezembro"
];

Date.getShortMonthName = function(month) {
return Date.monthNames[month].substring(0, 3);
};

Date.monthNumbers = {
Jan : 0,
Feb : 1,
Mar : 2,
Apr : 3,
May : 4,
Jun : 5,
Jul : 6,
Aug : 7,
Sep : 8,
Oct : 9,
Nov : 10,
Dec : 11
};

Date.getMonthNumber = function(name) {
return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
};

Date.dayNames = [
"Domingo",
"Segunda",
"Ter&ccedil;a",
"Quarta",
"Quinta",
"Sexta",
"Sabado"
];

Date.getShortDayName = function(day) {
return Date.dayNames[day].substring(0, 3);
};

if(Ext.MessageBox){
Ext.MessageBox.buttonText = {
ok : "OK",
cancel : "Cancelar",
yes : "Sim",
no : "N&atilde;o"
};
}

if(Ext.util.Format){
Ext.util.Format.date = function(v, format){
if(!v) return "";
if(!(v instanceof Date)) v = new Date(Date.parse(v));
return v.dateFormat(format || "Y/m/d");
};
}

if(Ext.DatePicker){
Ext.apply(Ext.DatePicker.prototype, {
todayText : "Hoje",
minText : "A data &eacute; anterior ao m&iacute;nimo definido",
maxText : "A data &eacute; posterior ao m

mystix
11 Nov 2008, 5:44 PM
Hy,

I want to contribute with the Portuguese (pt-PT) translation that was missing



...
// code removed
...



Regards

Nuno

added to SVN.. thanks!

jupeter
3 Dec 2008, 4:03 PM
Hi,

in "ext-lang-pl.js" is missing polish money format (zł - PLN). It's easy to extending:


if(Ext.util.Format){
Ext.apply(Ext.util.Format, {
plMoney : function(v){
v = (Math.round((v-0)*100))/100;
v = (v == Math.floor(v)) ? v + ",00" : ((v*10 == Math.floor(v*10)) ? v + "0" : v);
v = String(v);
var ps = v.split('.');
var whole = ps[0];
var sub = ps[1] ? ','+ ps[1] : ',00';
var r = /(\d+)(\d{3})/;
while (r.test(whole)) {
whole = whole.replace(r, '$1' + ' ' + '$2');
}
v = whole + sub;
if(v.charAt(0) == '-'){
return '-' + v.substr(1) + " zł";
}
return v + " zł";
}
});
}and example of using:


var grid = new Ext.grid.GridPanel({
store: store,
columns: [
{id:'company',header: "Company", width: 160, sortable: true, dataIndex: 'company'},
{header: "Price", width: 75, sortable: true, renderer: 'plMoney', dataIndex: 'price'},
{header: "Change", width: 75, sortable: true, renderer: change, dataIndex: 'change'},
{header: "% Change", width: 75, sortable: true, renderer: pctChange, dataIndex: 'pctChange'},
{header: "Last Updated", width: 85, sortable: true, renderer: Ext.util.Format.dateRenderer('m/d/Y'), dataIndex: 'lastChange'}
],
stripeRows: true,
autoExpandColumn: 'company',
height:350,
width:600,
title:'Array Grid'
});

Regards,
Piotr Plenik
www.teamlab.pl (http://www.teamlab.pl/)

Condor
3 Dec 2008, 10:50 PM
I don't think money formatters should be included in the locale files.

IMHO a generic number/money formatter (http://extjs.com/forum/showthread.php?t=48600) would be better.

ozgurOKKA
6 Feb 2009, 7:22 AM
Extjs is used by many people in many countries, so let's get the translations on the way :D

There's a complete list to translate in: source/experimental/ext-lang-en.js
Rename this file to your language code and start translating ;)

Attach your translation to the forum post !
Please do not paste it directly in the forum, because of special characters and indentation.

Steps to translate: (should take u less then an hour to complete)

Download ExtJs
Extract ExtJs
Change directory to Ext/source/experimental
Copy the file ext-lang-en.js to match your language code. (eg: for dutch: ext-lang-nl.js)
Start translating the new file (please use UTF-8 for character encoding)
If your language starts the week with Monday instead of Sunday, add "Ext.DatePicker.prototype.startDay = 1" in the DatePicker segment
Check your translations by adding <script type="text/javascript" src="/path/to/your/translation/ext-lang-nl.js"></script> to some of the examples or your own Ext application
Attach your translation to your post in this thread, please zip your translation first before uploading!
hi I am trying to change tetxfield error message into turkish.I am using "ext-lang-tr.js"

I and my html file's body part here is;

<body>

<!-- -->
<!-- This script is required bootstrap stuff. -->
<!-- You can put it in the HEAD, but startup -->
<!-- is slightly faster if you include it here. -->
<!-- -->
<script language="javascript" src="tr.gov.gib.mhdb.vimer.vimerapp.Vimer.nocache.js"></script>
<script type="text/javascript" src="js/ext/ext-all.js" /></script>
<script type="text/javascript" src="js/ext/source/locale/ext-lang-tr.js" /></script>
<!-- OPTIONAL: include this if you want history support -->
<iframe id="__gwt_historyFrame" style="width:0;height:0;border:0"></iframe>

</body>

the path of ext-lang-tr.js is ...public/js/ext/source/locale/ext-lang-tr.js

but it doesn't work

I am still getting error message in english

instead of turkish

what is wrong?

vilivili
18 Feb 2009, 12:56 AM
Hungarian translation encoding in 2.2.1 is wrong.

I attached the fixed version.

mystix
18 Feb 2009, 3:18 AM
Hungarian translation encoding in 2.2.1 is wrong.

I attached the fixed version.

added to SVN. thanks :)

Cipher
23 Feb 2009, 1:46 AM
Hi,

I found a translate error in /source/local/ext-lang-zh_TW.js file.

Original:
line 99 is displayMsg : "??{0} - {1}?,?{2}?",",

Correct is displayMsg : "??{0} - {1}?,?{2}?",


Update:
I don't know why the text can not be show correct.
Please give me a email for correct message.


Cipher

mystix
23 Feb 2009, 2:06 AM
Hi,

I found a translate error in /source/local/ext-lang-zh_TW.js file.

Original:
line 99 is displayMsg : "??{0} - {1}?,?{2}?",",

Correct is displayMsg : "??{0} - {1}?,?{2}?",


Update:
I don't know why the text can not be show correct.
Please give me a email for correct message.


Cipher
if you could make your corrections to the original locale file and attach the corrected file here i'll commit it to SVN.

Cipher
24 Feb 2009, 5:43 PM
Hi, Mystix

I attached the correct file, please update SVN.

mystix
24 Feb 2009, 5:58 PM
Hi, Mystix

I attached the correct file, please update SVN.

you might want to compare the taiwanese locale file with the base ext-lang-en.js file -- there's been quite a few additions (e.g HtmlEditor etc, which are missing from the taiwanese translation) since the translation was first added in 2007.

i'll wait for your possible update ;)

p.s. you might want to add your name to the comments at the top of the locale file. :)

Vladas
29 Mar 2009, 5:01 AM
Please find updated Lithuanian translations attached.

Also, I've found an incorrect localisation issue in Ext.DatePicker:
In method .createMonthPicker() (lines 381 and 382 in ext-2.2.1) there should be this.getShortMonthName(i) called instead of this.monthNames[i].substr(0, 3).

The problem is particulary with Lithuanian language, where two months (August and September) starts with the same first three letters (Rugpjutis and Rugsejis), so it would be nice if you correct DatePicker for displaying short month names using locales.

pmatsumura
24 Jun 2009, 4:32 AM
I've updated the german translation and added support for BooleanColumn, NumberedColumn and DateColumn. They were missing as discovered here -> http://extjs.com/forum/showthread.php?t=72265

Have fun!
Patrick

BIS
24 Jun 2009, 1:34 PM
hi

good work everybody
i haven't had the opportunity to see all the thread post but here goes the Arabic translation

i made an override for the datepicker so that it can display the months and days names probably

pmatsumura
10 Jul 2009, 12:18 AM
Hi guys,

I've found a problem when displaying numbers in a numbercolumn. I missed the /i as described in the documentation.


To reverse the grouping (,) and decimal (.) for international numbers, add /i to the end. For example: 0.000,00/i

I attached the updated version.

Patrick

TheBerliner
11 Jul 2009, 11:44 PM
Hello,

This only indirectly refers to this subject, but still:

Websites and web applications must be multi-lingual today. Absolutely mandatory!

It has always been our practice to equid our code with text keys, which are translated into the user-selected UI language at runtime from a translation dictionary.The same should be available to JavaScript code but I found no such tools. Is anybody aware of such tools? And I think that this would be a vital enhancement of EXT JS.

My ideas about what should happen:

All JS code contains nothing but text keys so that only one library is sent out no matter which language the user has chosen. The translations are sent an an extra JSON file and used by some central module to translate the text keys.

A simple syntax example for setting a title in the selected language. This could look like this:
title: translate('myTextKeyForThisTitle')
where the function translate answers the string in the currently selected language.

Actually, in our desk-top software, the actual translation is done at the very last point deep inside the UI library. The same should be contained in EXT JS so that an even simpler syntax could be used:
title: 'myTextKeyForThisTitle'
where there is the problem that (ASFAIK) JavaScript does not know symbols (as does Smalltalk) as a special form of Strings. So there must be some way to detect that what is sent as aString really is aSymbol. JS experts perhaps know some hack to circumvent this lack of symbols in JS.

How have you/others solved this?

Another improvement: The symbol (text key) should also be used to reference the user documentation.

Best regards from multi-lingual Europe

pmatsumura
12 Jul 2009, 12:40 AM
Hi,

this is actually the wrong thread for your post, since this thread should be used as a pool of
Ext language files of users. But I'll try to answer some of your questions. Also I would like to ask a moderator or an admin to move this post and the one from TheBerliner to a seperate thread. Thanks in advance for that.

First of all the Ext language files do not only contain translations of strings. They also provide date or number formats. Then if you create a web application you pretty sure use some kind of scripting language that generates HTML. You could then include the correct Ext language file and your dictionary file according to the language selected. Defining a title like so


title: translate('myTitle')should work fine as long as you defined that translate function correctly. But if you let a script generate the javascript code, then you could set the title while creating the output.


where there is the problem that (ASFAIK) JavaScript does not know symbols (as does Smalltalk) as a special form of Strings. So there must be some way to detect that what is sent as aString really is aSymbol. JS experts perhaps know some hack to circumvent this lack of symbols in JS.Why would you want to do that? Just curious, because I would just define a variable, or if I used your translation function, I'd define a dictionary array with keys, each holding a translated value.

Thanks,
Patrick

Thylia
24 Jul 2009, 2:07 AM
Updated the french translation for Ext 3.0

fatihpoyraz
8 Aug 2009, 6:00 AM
Hi All ,

please help me !!

i do record form with extjs. if submit form to asp then not display turkis charset.
This default Content-Type --> "application/x-www-form-urlencoded; charset=UTF-8"

But i want do charset iso-8859-9.

e.q. "Kay?t" --> "Kayä±t"

my mail address = fatihpoyraz_jfm@hotmail.com

------------------------------------------------------------------------------------
Herkese merhabalar,

Bilen bi arkada? varsa yard?m etsin.

Extjs ile bi kay?t formu olu?turdum. kay?t formuna koydo?um buton a t?klay?nca bir asp ye gönderiyor ve veritaban? i?lemleri yap?yor. Fakat formdaki türkçe karakterler bozuk geliyor asp ye çok u?ra?t?m fakat bulamad?m.

ext-all-debug.js --> dosyas?nda 59000 - 59057 sat?rlar? aras?nda submit fonksiyonuvar orada 59012 sat?rda header var ve ben ondan kaynakland???n? dü?ünüyorum ve bir türlü de?i?tiremiyorum.

sorunun örne?i "Kay?t" --> "Kayä±t" olarak ? karakteri bozuk görünüyor ayn? ?ekilde

"?,?,ç,ö" ve büyük harfleride.

charset i nas?l "iso-8859-9" ?eklinde ayarlayabilirim.

mail adresim: fatihpoyraz_jfm@hotmail.com

AloneWalker
8 Aug 2009, 7:54 AM
Selam Fatih..
Benim Tavsiyem EXTJS ile u?ra??rken tüm dosyalar?n?n kodlamas?n? ve web uygulaman? utf8 yapmand?r. Veri taban? içinde collation utf8 ve utf8-general-ci yaparsan sorun ortadan kalkacakt?r.

Kolay gelsin...

tarini
22 Aug 2009, 3:31 PM
in Italian translation this label are missing



if(Ext.form.TimeField){
Ext.apply(Ext.form.TimeField.prototype, {
minText : "Il valore deve essere successivo a {0}",
maxText : "Il valore deve essere precedente di {0}",
invalidText : "{0} non \u00E8 un valore valido. Deve essere nel formato {1}",
format : "H:i:s",
altFormats : "H:i|g:i A"
});
}

MoYo
6 Sep 2009, 5:26 AM
The hebrew translation do not use unicode encoding.

Correct file attached.

Corrections done by maltyx for GLPI project.

regards.

geenie98
2 Oct 2009, 12:30 PM
I added 2 more items to the file :
the 'cancel' button when choosing another month/year in a DateField and some Tooltip text when drag and dropping a line between two lists.

I also corrected a few typos here and there (mostly accents and gender errors)

salihgedik
2 Oct 2009, 1:13 PM
Hi All ,

please help me !!

i do record form with extjs. if submit form to asp then not display turkis charset.
This default Content-Type --> "application/x-www-form-urlencoded; charset=UTF-8"

But i want do charset iso-8859-9.

e.q. "Kay?t" --> "Kayä±t"

my mail address = fatihpoyraz_jfm@hotmail.com

------------------------------------------------------------------------------------
Herkese merhabalar,

Bilen bi arkada? varsa yard?m etsin.

Extjs ile bi kay?t formu olu?turdum. kay?t formuna koydo?um buton a t?klay?nca bir asp ye gönderiyor ve veritaban? i?lemleri yap?yor. Fakat formdaki türkçe karakterler bozuk geliyor asp ye çok u?ra?t?m fakat bulamad?m.

ext-all-debug.js --> dosyas?nda 59000 - 59057 sat?rlar? aras?nda submit fonksiyonuvar orada 59012 sat?rda header var ve ben ondan kaynakland???n? dü?ünüyorum ve bir türlü de?i?tiremiyorum.

sorunun örne?i "Kay?t" --> "Kayä±t" olarak ? karakteri bozuk görünüyor ayn? ?ekilde

"?,?,ç,ö" ve büyük harfleride.

charset i nas?l "iso-8859-9" ?eklinde ayarlayabilirim.

mail adresim: fatihpoyraz_jfm@hotmail.com
Check it out http://www.extjs.com/forum/showthread.php?p=134032

Thylia
4 Nov 2009, 2:52 AM
Updated the french translation for Ext 3.0 and Ext 2.3 for solve a bug in IE :


Ext.override(Date, {
getSuffix : function() {
return (this.getDate() == 1) ? "er" : "";
}
});


change to


Ext.apply(Date.prototype, {
getSuffix : function() {
return (this.getDate() == 1) ? "er" : "";
}
});

Ankai
9 Nov 2009, 10:21 PM
Hi!

This is translation locale for kazakh language, which I'm using in my projects.

You can use it without any restricts :)

I think it can be distributed with ext js :">



?/*
* Kazakh translation
* (utf-8 encoding)
* 10 November 2009
*/

Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">?????????...</div>';

if(Ext.View){
Ext.View.prototype.emptyText = "";
}

if(Ext.grid.GridPanel){
Ext.grid.GridPanel.prototype.ddText = "{0} ???????? ??????";
}

if(Ext.TabPanelItem){
Ext.TabPanelItem.prototype.closeText = "????????? ????";
}

if(Ext.form.Field){
Ext.form.Field.prototype.invalidText = "???????? ??? ????? ????";
}

if(Ext.LoadMask){
Ext.LoadMask.prototype.msg = "???????...";
}

Date.monthNames = [
"??????",
"?????",
"??????",
"?????",
"?????",
"??????",
"?????",
"?????",
"????????",
"?????",
"??????",
"?????????"
];

Date.shortMonthNames = [
"???",
"???",
"???",
"???",
"???",
"???",
"???",
"???",
"???",
"???",
"???",
"????"
];

Date.getShortMonthName = function(month) {
return Date.shortMonthNames[month];
};

Date.monthNumbers = {
'???': 0,
'???': 1,
'???': 2,
'???': 3,
'???': 4,
'???': 5,
'???': 6,
'???': 7,
'???': 8,
'???': 9,
'???': 10,
'????': 11
};

Date.getMonthNumber = function(name) {
return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
};

Date.dayNames = [
"????????",
"????????",
"????????",
"????????",
"????????",
"????",
"?????"
];

Date.getShortDayName = function(day) {
return Date.dayNames[day].substring(0, 3);
};

if(Ext.MessageBox){
Ext.MessageBox.buttonText = {
ok : "OK",
cancel : "?????????",
yes : "??",
no : "???"
};
}

if(Ext.util.Format){
Ext.util.Format.date = function(v, format){
if(!v) return "";
if(!(v instanceof Date)) v = new Date(Date.parse(v));
return v.dateFormat(format || "d.m.Y");
};
}

if(Ext.DatePicker){
Ext.apply(Ext.DatePicker.prototype, {
todayText : "?????",
minText : "??? ?????? ????????? ????????? ????",
maxText : "??? ?????? ?????????? ????????? ???",
disabledDaysText : "",
disabledDatesText : "",
monthNames : Date.monthNames,
dayNames : Date.dayNames,
nextText : '?????? ?? (Control+????)',
prevText : '??????? ?? (Control+?????)',
monthYearText : '???? ?????? (Control+??????/?????? ????? ?????? ???? ????????)',
todayTip : "{0} (??????)",
format : "d.m.y",
okText : " OK ",
cancelText : "?????????",
startDay : 1
});
}

if(Ext.PagingToolbar){
Ext.apply(Ext.PagingToolbar.prototype, {
beforePageText : "???",
afterPageText : "?? {0}",
firstText : "??????? ???",
prevText : "??????? ???",
nextText : "?????? ???",
lastText : "????? ???",
refreshText : "???????",
displayMsg : "{0} -??? {1} ?????? ???????? ???????????, ???????{2}",
emptyMsg : '?????????? ???'
});
}

if(Ext.form.TextField){
Ext.apply(Ext.form.TextField.prototype, {
minLengthText : "??????? ????????? ???????? {0}",
maxLengthText : "??????? ?????????? ???????? {0}",
blankText : "??? ???? ???????? ????? ??????? ?????",
regexText : "",
emptyText : null
});
}

if(Ext.form.NumberField){
Ext.apply(Ext.form.NumberField.prototype, {
minText : "??? ??????? ???? {0} -??? ???? ?????? ?????",
maxText : "??? ??????? ???? {0} -??? ????? ?????? ?????",
nanText : "{0} ??? ????"
});
}

if(Ext.form.DateField){
Ext.apply(Ext.form.DateField.prototype, {
disabledDaysText : "?????? ???",
disabledDatesText : "?????? ???",
minText : "???? ?????? ?????? {0}-??? ??? ?????? ?????",
maxText : "???? ?????? ?????? {0}-??? ???? ?????? ?????",
invalidText : "{0} ????? ???? ?????? - ?????? {1} ?????????? ????? ????? ",
format : "d.m.y",
altFormats : "d.m.y|d/m/Y|d-m-y|d-m-Y|d/m|d-m|dm|dmy|dmY|d|Y-m-d"
});
}

if(Ext.form.ComboBox){
Ext.apply(Ext.form.ComboBox.prototype, {
loadingText : "???????...",
valueNotFoundText : undefined
});
}

if(Ext.form.VTypes){
Ext.apply(Ext.form.VTypes, {
emailText : '??? ?????? "user@example.com" ?????????? ??????????? ????? ?????? ????? ?????.',
urlText : '??? ?????? "http:/'+'/www.example.com" ?????????? URL ?????? ????? ?????.',
alphaText : '??? ?????? ??? ????? ???????? ???? ???? ???????? ?????????? "_" ???? ????? ?????.',
alphanumText : '??? ?????? ??? ????? ????????, ??????? ???? ???? ???????? ?????????? "_" ???? ????? ?????.',
});
}

if(Ext.form.HtmlEditor){
Ext.apply(Ext.form.HtmlEditor.prototype, {
createLinkText : '??????????? ?????????:',
buttonTips : {
bold : {
title: '???????? ???? ????????? (Ctrl+B)',
text: '???????? ??????? ???????? ???? ??????????? ???????? ???????.',
cls: 'x-html-editor-tip'
},
italic : {
title: '?????? (Ctrl+I)',
text: '???????? ??????? ?????? ???????? ???????.',
cls: 'x-html-editor-tip'
},
underline : {
title: '???? ???????? (Ctrl+U)',
text: '???????? ???????? ????? ????.',
cls: 'x-html-editor-tip'
},
increasefontsize : {
title: '???????? ???????',
text: '???????? ???????? ???????.',
cls: 'x-html-editor-tip'
},
decreasefontsize : {
title: '???????? ??????',
text: '???????? ???????? ??????.',
cls: 'x-html-editor-tip'
},
backcolor : {
title: '???',
text: '???????? ???? ?????? ?????? ???????? ??? ????? ???????.',
cls: 'x-html-editor-tip'
},
forecolor : {
title: '????? ????',
text: '????? ????? ???????.',
cls: 'x-html-editor-tip'
},
justifyleft : {
title: '??????? ??? ????? ????????',
text: '??????? ??? ????? ????????.',
cls: 'x-html-editor-tip'
},
justifycenter : {
title: '????????',
text: '??????? ?????? ????? ????????.',
cls: 'x-html-editor-tip'
},
justifyright : {
title: '??????? ??? ????? ????????',
text: '??????? ??? ????? ????????.',
cls: 'x-html-editor-tip'
},
insertunorderedlist : {
title: '?????????????',
text: '??????? ????????.',
cls: 'x-html-editor-tip'
},
insertorderedlist : {
title: '????????',
text: '??????? ????????.',
cls: 'x-html-editor-tip'
},
createlink : {
title: '???????????? ????',
text: '???????? ??????? ??????? ?????.',
cls: 'x-html-editor-tip'
},
sourceedit : {
title: '???????? ???',
text: '???????? ????? ?????.',
cls: 'x-html-editor-tip'
}
}
});
}

if(Ext.form.BasicForm){
Ext.form.BasicForm.prototype.waitTitle = "???? ???????...";
}

if(Ext.grid.GridView){
Ext.apply(Ext.grid.GridView.prototype, {
sortAscText : "?????? ????? ???????",
sortDescText : "??????? ????? ???????",
lockText : "????????? ??????",
unlockText : "???????? ??????????? ????",
columnsText : "?????????"
});
}

if(Ext.grid.GroupingView){
Ext.apply(Ext.grid.GroupingView.prototype, {
emptyGroupText : '(???)',
groupByText : '???? ??????? ??????',
showGroupsText : '?????? ???????'
});
}

if(Ext.grid.PropertyColumnModel){
Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
nameText : "???",
valueText : "????",
dateFormat : "d.m.Y"
});
}

if(Ext.SplitLayoutRegion){
Ext.apply(Ext.SplitLayoutRegion.prototype, {
splitTip : "???????? ??????? ???? ????????.",
collapsibleSplitTip : "???????? ??????? ???? ????????. ??? ??? ????????? ?????? ??????????."
});
}

if(Ext.layout.BorderLayout && Ext.layout.BorderLayout.SplitRegion){
Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
splitTip : "???????? ??????? ???? ????????.",
collapsibleSplitTip : "???????? ??????? ???? ????????. ??? ??? ????????? ?????? ??????????."
});
}

tommygreatboom
11 Nov 2009, 11:52 PM
Thanks for update french Translation to fix IE bug !

Zolcsi
16 Nov 2009, 9:43 AM
Hi,

I made some update to the Hungarian translation. There was a character-encoding issue with one character and I corrected the default date formats.
I've attached my version.

mystix
17 Nov 2009, 2:20 AM
Hi,

I made some update to the Hungarian translation. There was a character-encoding issue with one character and I corrected the default date formats.
I've attached my version.

i think you forgot to actually include any attachment ;)

Zolcsi
17 Nov 2009, 2:38 AM
hmm,
that's strange, I'm positive I attached it.
Anyhow, I'll try again.

sergei.stolyarov
22 Nov 2009, 10:55 PM
I've made some encoding-related fixes in the russian translation file. File is taken from 3.0.3

sunsay
8 Dec 2009, 10:27 AM
Russian translation with declination of numerals in ddText.
Original file is taken from the post above.
17655

Thylia
8 Feb 2010, 9:13 AM
Thanks for update french Translation to fix IE bug !


Updated the french translation for Ext 3.0 and Ext 2.3 for solve a bug in IE :


Ext.override(Date, {
getSuffix : function() {
return (this.getDate() == 1) ? "er" : "";
}
});
change to


Ext.apply(Date.prototype, {
getSuffix : function() {
return (this.getDate() == 1) ? "er" : "";
}
});

vog
6 Mar 2010, 3:06 PM
I'm a native german speaker and I ran across several issues with Ext's ext-lang-de.js. So I performed some corrections. The attached new ext-lang-de.js is based on Ext 3.1.1.

Moreover, I noted that the localization for Ext.util.Format.number is missing. It seems to be missing in all localization files. Didn't anyone notice that bug yet? In the attached file, I solved it this way:



var originalExtUtilFormatNumber = Ext.util.Format.number;
Ext.util.Format.number = function(v, format){
return originalExtUtilFormatNumber(v, format || "0.000,00/i");
};
If you consider this solution to be okay, I'd recommend to put a similar code block into all other localization files.

pasinski
10 Mar 2010, 12:51 AM
Sorry for spamming if this has been already written. I've noticed a small error in polish locale file. Date format was 'Y-m-d', wheras in Poland you'd usually use 'd-m-Y' instead. I've corrected this error and attach the file to this thread. If you've noticed any similar errors in your 'native' locale files, maybe it's a good place to post them

vog
10 Mar 2010, 6:21 AM
I fixed another issue with the german localization. The attached file is based of ExtJS 3.1.1.

Jamie Avins
10 Mar 2010, 8:37 AM
I've stickied and moved this thread to a more appropriate place.

Jamie Avins
10 Mar 2010, 9:55 AM
I fixed another issue with the german localization. The attached file is based of ExtJS 3.1.1.

Fixed in SVN-6266.

mystix
10 Mar 2010, 10:07 AM
Fixed in SVN-6266.

@vog / @jamie, that fix introduces a global variable originalExtUtilFormatNumber.

i suggest using this instead:


Ext.util.Format.__number = Ext.util.Format.number;
Ext.util.Format.number = function(v, format) {
return Ext.util.Format.__number(v, format || "0.000,00/i");
});

Condor
11 Mar 2010, 12:08 AM
i suggest using this instead:

I would recommend:

(function(){
var number = Ext.util.Format.number;
Ext.util.Format.number = function(v, format){
return number(v, format || '0.000,00/i');
};
})();

mystix
11 Mar 2010, 12:15 AM
@condor -- i thought about doing that, but was concerned about adding overhead.

i guess your way makes more sense when i think about it again -- there's no way someone could accidentally wipe out the original function (i.e. __number in my case) if it's inside a closure, which makes for much safer overriding.

vog
11 Mar 2010, 2:37 AM
If we are talking about clean code, we should solve the underlying real problem.

We don't want to change whole functions. All we want to change is:


the default number format
the default date format

Currently, these values are hidden in the functions, which is why we need such a clumsy code around the functions. If these values were explicit, we could replace that whole stuff:


if(Ext.util.Format){
(function(){
var number = Ext.util.Format.number;
Ext.util.Format.number = function(v, format){
return number(v, format || '0.000,00/i');
};
})();
Ext.util.Format.date = function(v, format){
if(!v) return "";
if(!(v instanceof Date)) v = new Date(Date.parse(v));
return v.dateFormat(format || "d.m.Y");
};
}with much cleaner code:


if(Ext.util.Format){
Ext.util.Format.defaultNumberFormat = '0.000,00/i';
Ext.util.Format.defaultDateFormat = 'd.m.Y';
}
This would require just one line changed in Ext.util.Format.date(), and one line changed in Ext.util.Format.number().

mystix
11 Mar 2010, 6:48 AM
@vog: agreed. +1
(question -- why didn't you suggest that in the 1st place? :>)

i guess it's a good thing then that no-one else noticed the missing Ext.util.Format.number override in all the locale files
-- it'll give the dev team some time to sort this issue out before it takes root. :-?

senacle
18 Mar 2010, 2:06 AM
See this post http://www.extjs.com/forum/showthread.php?p=448007#post448007 for some bug.

Bug fixed in the Extjs 3.2RC1

Thylia
20 Apr 2010, 7:06 AM
I fixed another issue with the french localization. The attached file is based of ExtJS 3.2.0.

Jamie Avins
20 Apr 2010, 9:07 AM
Thank you both for the French updates.

Rouks
19 May 2010, 1:58 AM
There are some unexpected chars at line 7:

/*

mystix
19 May 2010, 2:29 AM
There are some unexpected chars at line 7:

/*

Line 7 of _________ ?

Saint Father
20 May 2010, 2:59 AM
Line 7 of _________ ?

for example in
ext-3.2.1.zip
ext-3.2.1\src\locale\ext-lang-ru.js
in addition here there are some spelling errors...

In this file spelling errors are already corrected

Russian translation with declination of numerals in ddText.
Original file is taken from the post above.
17655
But characters are present here again.
I have deleted them and have a little changed function getShortDayName.

Condor
20 May 2010, 3:10 AM
The Ext build process produces slightly invalid UTF-8 files, because it prepends an ISO 8859-1 header to the original UTF-8 source file, but it doesn't move the UTF-8 BOM (= the characters you are seeing).

Most browsers and editors are able to handle this correctly as long as you specify that it is an UTF-8 file.

If you want to modify a locale file to be uploaded here, then you can simply remove the first 6 lines and save the result as a correct UTF-8 file.

Gonfi
20 May 2010, 5:09 AM
locale de_CH (file does not exist) would need these changes compared to de (which is actually de_DE, dunno what de_AT would use):

1) dot instead of comma for decimal separator
2) apostrophe for separating thousands


decimalSeparator : "."

Ext.util.Format.number = function(v, format) {
return Ext.util.Format.__number(v, format || "0'000.00/i");
};

Ext.apply(Ext.grid.NumberColumn.prototype, {
format : "0'000.00/i"
});


the number format is a duplicate; it could be assigned to a variable, something like:
Numbers = {
numberFormat : "0'000.00/i",
decimalSeparator : ".",
...
}

the locale file could override just that, and all components could access it.

Mycoding
31 May 2010, 6:45 AM
I'm from Russsia, and I include ext-lang-ru.js
like this
<html>
<head>
<link rel="stylesheet" type="text/css" href="../../../ext/resources/css/ext-all.css">
<script type="text/javascript" src="../../../ext/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="../../../ext/ext-all-debug.js"></script>
<script src="ext-lang-ru.js"></script>
<script type="text/javascript" src="mycalendar.js"></script>
</head>
<body>
<div id='b1'></div>
<div id='response'></div>
</body>
</html>

This file is in my folder, but nothing happens?
All in English stilll.

Condor
31 May 2010, 7:57 AM
It's:

<script type="text/javascript" src="ext-lang-ru.js" charset="utf-8"></script>
(and if that still fails, check if the file is actually loaded using the Firebug Net tab)

Mycoding
31 May 2010, 8:14 AM
Thanks a lot, all work.

Thylia
29 Jul 2010, 3:09 AM
I fixed another issue with the french localization.

vanessa_ng
6 Aug 2010, 5:22 PM
I had to change the file name from ext-lang-vn.js to ext-lang-vi.js in order to make translation work with language setting in browsers.

halkon_polako
8 Aug 2010, 1:57 AM
Hi!!

Here are attached the updated translations of Catalonian and Spanish languages based on Ext 3.2.1 version ext-lang-en.js file

Regards

bagndon
14 Aug 2010, 10:54 AM
Hello, I have made a small patch to util/Format.js to allow localization of decimal separator and thousand separator. You'll note that I removed the 'm' local var because its value is never read.



--- ext-3.2.1-dist/src/util/Format.js 2010-04-27 11:00:52.000000000 +0200
+++ ext-3.2.1/src/util/Format.js 2010-08-14 17:54:56.390625000 +0200
@@ -250,6 +250,22 @@
},

/**
+ * The decimal separator to use
+ * Override this value for international numbers.
+ * (defaults to <tt>'.'</tt>)
+ * @type String
+ */
+ decimalSeparator: '.',
+
+ /**
+ * The thousand separator to use
+ * Override this value for international numbers.
+ * (defaults to <tt>','</tt>)
+ * @type String
+ */
+ thousandSeparator: ',',
+
+ /**
* Formats the number according to the format string.
* <div style="margin-left:40px">examples (123456.789):
* <div style="margin-left:10px">
@@ -303,22 +319,21 @@
psplit = fnum.split('.');

if (hasComma) {
- var cnum = psplit[0], parr = [], j = cnum.length, m = Math.floor(j / 3), n = cnum.length % 3 || 3;
+ var cnum = psplit[0], parr = [], j = cnum.length, n = j % 3 || 3;

for (var i = 0; i < j; i += n) {
if (i != 0) {
n = 3;
}
parr[parr.length] = cnum.substr(i, n);
- m -= 1;
}
- fnum = parr.join(comma);
+ fnum = parr.join(this.thousandSeparator);
if (psplit[1]) {
- fnum += dec + psplit[1];
+ fnum += this.decimalSeparator + psplit[1];
}
} else {
if (psplit[1]) {
- fnum = psplit[0] + dec + psplit[1];
+ fnum = psplit[0] + this.decimalSeparator + psplit[1];
}
}

Then localization files need this update :



--- ext-3.2.1-dist/src/locale/ext-lang-en.js 2010-04-27 11:00:52.000000000 +0200
+++ ext-3.2.1/src/locale/ext-lang-en.js 2010-08-14 19:12:20.265625000 +0200
@@ -94,6 +114,8 @@
}

if(Ext.util.Format){
+ Ext.util.Format.decimalSeparator = '.';
+ Ext.util.Format.thousandSeparator = ',';
Ext.util.Format.date = function(v, format){
if(!v) return "";
if(!(v instanceof Date)) v = new Date(Date.parse(v));
And it is no more required to the the '/i' suffix when specifying a number format.

For example, the German translation needs this update :



@@ -100,11 +101,8 @@
}

if(Ext.util.Format){
- Ext.util.Format.__number = Ext.util.Format.number;
- Ext.util.Format.number = function(v, format) {
- return Ext.util.Format.__number(v, format || "0.000,00/i");
- };
-
+ Ext.util.Format.decimalSeparator = ',';
+ Ext.util.Format.thousandSeparator = '.';
Ext.util.Format.date = function(v, format) {
if(!v) return "";
if(!(v instanceof Date)) v = new Date(Date.parse(v));
And in the French one :



@@ -111,11 +117,13 @@
}

if(Ext.util.Format){
+ Ext.util.Format.decimalSeparator = ',';
+ Ext.util.Format.thousandSeparator = ' ';
Ext.util.Format.date = function(v, format){
if(!v) return "";
- if(!Ext.isDate(v)) v = new Date(Date.parse(v));
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
return v.dateFormat(format || "d/m/Y");
};
}

if(Ext.DatePicker){

Furthermore, in data/Types.js, a localizable replacement to parseFloat() should be used. So that the right decimal separator is used.

bagndon
14 Aug 2010, 11:59 AM
Here is an update of German, English, French, and Italian languages for ExtJS 3.2.1.

This includes a full bunch of improvements :


The decimal/thousand separators update.
The latest updates of Thyla are included in the French file.
The order of statements have been aligned to English main file to ease further updates.
(v instanceof Date) is better suited than Ext.isDate(v) in Ext.util.Format.date().
Ext.util.Format.fileSize added (following Thylia contribution)
j/n/y|j/n/Y as French altFormats in Ext.form.DateField insterad of d/m/y
Removal of all 'h' and 'H' in altFormats of Ext.form.TimeField because 'h' and 'H' stand for the /\d{1,2}/ regexp and g and 'G' for /\d{2}/ which matches only a subset of what /\d{1,2}/ matches. So that's why all 'h' and 'H' altFormats are unnecessary here.
Use of 'j' instead of 'd' and 'n' instead of 'm' where relevant in altFormats Ext.form.DateField (like in the German file) because of the same reason as above : /\d{1,2}/ matches a superset of what /\d{2}/ matches. That said, 'dm' is still 'dm' because 'jn' would be ambiguous.
Aligned English with other files so that when executing English JS last, we can go back to English for all settings (critical when using an AJAX request to dynamically load language files)


21958

Stju
25 Aug 2010, 3:46 AM
Translation file for Estonian (et) was missing.
Corrected and added missing entries for Latvian language.
Please add to locales!

Jamie Avins
7 Sep 2010, 10:01 AM
We're going to close this thread in favor of opening individual tickets on the items to ensure they get resolved.