Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(i18n): add Arabic(AR) translation #19214

Merged
merged 2 commits into from
Oct 18, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
145 changes: 145 additions & 0 deletions src/i18n/langAR.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/

/**
* Language: Arabic.
*/

export default {

time: {
month: [
'يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', 'يونيو',
'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'
],
monthAbbr: [
'يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', 'يونيو',
'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'
],
Comment on lines +31 to +34
Copy link
Member

@plainheart plainheart Oct 18, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The month items seem not to be sorted from 1~12 and the dayOfWeek items seem not to be sorted from Sunday-Saturday.

Ref:
https://github.com/amcharts/amcharts5/blob/master/src/locales/ar.ts#L227C14-L266
https://en.wikipedia.org/wiki/Arabic_names_of_Gregorian_months

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The problem is not in the code, but in the code editor, as it displays texts that contain RTL languages ​​in reverse.
I suffer from this problem a lot, as an Arab software developer.
The code display is wrong, but the output is correct.
The same applies to the order of days.

EX:

var monthAbb = [
    'يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', 'يونيو',
    'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'
]

console.log(monthAbb[0]) // يناير = January
console.log(monthAbb[11]) // ديسمبر = December

var dayOfWeek = [
    'الأحد', 'الإثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'
]
console.log(dayOfWeek[0]) // الأحد = Sunday
console.log(dayOfWeek[6]) // السبت = Saturday

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for explanation. Get it.

dayOfWeek: [
'الأحد', 'الإثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'
],
dayOfWeekAbbr: [
'الأحد', 'الإثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'
]
},
legend: {
selector: {
all: 'تحديد الكل',
inverse: 'عكس التحديد'
}
},
toolbox: {
brush: {
title: {
rect: 'تحديد صندوقي',
polygon: 'تحديد حلقي',
lineX: 'تحديد أفقي',
lineY: 'تحديد عمودي',
keep: 'الاحتفاظ بالمحدد',
clear: 'إلغاء التحديد'
}
},
dataView: {
title: 'عرض البيانات',
lang: ['عرض البيانات', 'إغلاق', 'تحديث']
},
dataZoom: {
title: {
zoom: 'تكبير',
back: 'استعادة التكبير'
}
},
magicType: {
title: {
line: 'خطوط',
bar: 'أشرطة',
stack: 'تكديس',
tiled: 'مربعات'
}
},
restore: {
title: 'استعادة'
},
saveAsImage: {
title: 'حفظ كملف صورة',
lang: ['للحفظ كصورة انقر بالزر الأيمن']
}
},
series: {
typeNames: {
pie: 'رسم بياني دائري',
bar: 'رسم بياني شريطي',
line: 'رسم بياني خطي',
scatter: 'نقاط مبعثرة',
effectScatter: 'نقاط مبعثرة متموجة',
radar: 'رسم بياني راداري',
tree: 'شجرة',
treemap: 'مخطط شجري',
boxplot: 'مخطط صندوقي',
candlestick: 'مخطط شمعدان',
k: 'رسم بياني خطي من النوع K',
heatmap: 'خريطة حرارية',
map: 'خريطة',
parallel: 'خريطة الإحداثيات المتناظرة',
lines: 'خطوط',
graph: 'مخطط علائقي',
sankey: 'مخطط ثعباني',
funnel: 'مخطط هرمي',
gauge: 'مقياس',
pictorialBar: 'مخطط مصوّر',
themeRiver: 'نمط خريطة النهر',
sunburst: 'مخطط شمسي'
}
},
aria: {
general: {
withTitle: 'هذا رسم بياني حول "{title}".',
withoutTitle: 'هذا رسم بياني.'
},
series: {
single: {
prefix: '',
withName: ' من النوع {seriesType} اسمه {seriesName}.',
withoutName: ' من النوع {seriesType}.'
},
multiple: {
prefix: '. يتكون من {seriesCount} سلسلة.',
withName: ' الـ {seriesId} هي سلسلة من النوع {seriesType} تستعرض {seriesName}.',
withoutName: ' الـ {seriesId} هي سلسلة من النوع {seriesType}.',
separator: {
middle: '، ',
end: '. '
}
}
},
data: {
allData: 'البيانات هي كالتالي: ',
partialData: 'أول {displayCnt} عناصر هي: ',
withName: 'قيمة العنصر {name} هي {value}',
withoutName: '{value}',
separator: {
middle: '، ',
end: '. '
}
}
}


};