عمومی سازی و بومی سازی در جاوا - صفحه 3 - تالار گفتمان آذر فروم





دعوت به همکاری با آذر فروم

 

عمومی سازی و بومی سازی در جاوا
زمان کنونی: 19-09-1395،11:04 ب.ظ
کاربران در حال بازدید این موضوع: 1 مهمان
نویسنده: Friga
آخرین ارسال: Friga
پاسخ: 48
بازدید: 1861

 
 
رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5

موضوع: عمومی سازی و بومی سازی در جاوا
ارسال: #21
RE: عمومی سازی و بومی سازی در جاوا
پست‌ها: 11,943
تاریخ عضویت: 20 اردیبهشت 1390
اعتبار: 288
حالت من: Shad
۵- اقدامات لازم برای I18N

بسیاری از برنامه‌ها از ابتدا عمومی و چند زبانه نیستند. این برنامه ها ممکن است از یک Prototype شروع شوند و یا قابلیت چند زبانه بودن در آنها در نظر گرفته نشده باشد. برای I18N ساختن یک برنامه موجود، بایستی مراحل زیر طی شده باشد:

۱٫۵- شناسایی اطلاعات حساس به زبان و منطقه
پیغامهای متنی صریح ترین فرم اطلاعاتی هستند که به زبان و منطقه جغرافیایی وابستگی دارند. بهرحال سایر اطلاعات نیز ممکن است به این دو عامل وابستگی داشته باشند. لیست زیر اطلاعات حساس به ملیت را نشان می‌دهد:

پیغامها
عنوان اجزای رابط کاربر
صداها
رنگها
گرافیک و تصاویر
تاریخ
زمان
پول
واحدهای اندازه گیری
شماره تلفن
آدرسهای پستی
طراحی صفحات
















دورمچم به جای ساعت یکنوار مشکی بستم
تا همه بفهمن من از همه هر چه زمانو متعلق به زمان است بیزارم
من هم روزی قلبی داشتم
که توسط مردمانی ازمیان شما شکست و شکست تا سنگی شد
واکنون روزگاریست که شیطان فریاد میزند..
انسان پیدا کنید سجده خواهم کرد...


=====ஜ۩۞۩ஜ=====

24-05-1391 02:13 ب.ظ
 
ارسال: #22
RE: عمومی سازی و بومی سازی در جاوا
پست‌ها: 11,943
تاریخ عضویت: 20 اردیبهشت 1390
اعتبار: 288
حالت من: Shad
۲٫۵- جداسازی متنهای قابل ترجمه و انتقال به Resource Bundles

فرآیند ترجمه هزینه بر و گران است. شما می توانید این هزینه را با جداسازی متنهای نیازمند ترجمه و قرار دادن آنها در یک Resource Bundle کاهش دهید.

متنهای قابل ترجمه شامل پیغامهای وضعیت، پیغامهای خطا، فایلهای log و عنوان اجزا GUI می‌باشند. ضمن جداسازی این اطلاعات از کد برنامه، متغیرهایی که از این عنوانها استفاده می کنند بایستی بطور صریح و جداگانه تعریف شوند:


String buttonLabel = "OK";
...
JButton okButton = new JButton(buttonLabel);
















دورمچم به جای ساعت یکنوار مشکی بستم
تا همه بفهمن من از همه هر چه زمانو متعلق به زمان است بیزارم
من هم روزی قلبی داشتم
که توسط مردمانی ازمیان شما شکست و شکست تا سنگی شد
واکنون روزگاریست که شیطان فریاد میزند..
انسان پیدا کنید سجده خواهم کرد...


=====ஜ۩۞۩ஜ=====

24-05-1391 02:13 ب.ظ
 
ارسال: #23
RE: عمومی سازی و بومی سازی در جاوا
پست‌ها: 11,943
تاریخ عضویت: 20 اردیبهشت 1390
اعتبار: 288
حالت من: Shad
3.5- پیغامهای ترکیبی (Compound Messages)

پیغامهای ترکیبی حاوی اطلاعات متغیر است. برای مثال در پیغام “.The disk contains 1100 files” عدد ۱۱۰۰ می تواند متغیر باشد. ترجمه این نوع پیغام بسیار مشکل است، زیرا برای مثال محل قرار گرفتن عدد ۱۱۰۰ در این عبارت در زبانهای مختلف با یکدیگر متفاوت است. پیغام زیر قابل ترجمه نیست چون ترتیب قرار گرفتن قسمتهای این جمله در داخل کد برنامه مشخص شده است.


Integer fileCount;
...
String diskStatus = "The disk contains " + fileCount.toString() + " files.";
















دورمچم به جای ساعت یکنوار مشکی بستم
تا همه بفهمن من از همه هر چه زمانو متعلق به زمان است بیزارم
من هم روزی قلبی داشتم
که توسط مردمانی ازمیان شما شکست و شکست تا سنگی شد
واکنون روزگاریست که شیطان فریاد میزند..
انسان پیدا کنید سجده خواهم کرد...


=====ஜ۩۞۩ஜ=====

24-05-1391 02:13 ب.ظ
 
ارسال: #24
RE: عمومی سازی و بومی سازی در جاوا
پست‌ها: 11,943
تاریخ عضویت: 20 اردیبهشت 1390
اعتبار: 288
حالت من: Shad
4.5- نمایش اعداد و پول

اگر برنامه اعداد یا پول را نمایش می‌دهد، بایستی این اطلاعات به روشی مستقل از کشور یا منطقه خاص نمایش داده شود. کد زیر عمومی نیست چرا که نمی تواند اعداد را بصورت صحیح در تمام کشورها نمایش دهد:


Double amount;
TextField amountField;
...
String displayAmount = amount.toString();
amountField.setText(displayAmount);

در جاوا کلاس NumberFormat برای تغییر نمایش اعداد به زبانهای مختلف در نظر گرفته شده است.
















دورمچم به جای ساعت یکنوار مشکی بستم
تا همه بفهمن من از همه هر چه زمانو متعلق به زمان است بیزارم
من هم روزی قلبی داشتم
که توسط مردمانی ازمیان شما شکست و شکست تا سنگی شد
واکنون روزگاریست که شیطان فریاد میزند..
انسان پیدا کنید سجده خواهم کرد...


=====ஜ۩۞۩ஜ=====

24-05-1391 02:14 ب.ظ
 
ارسال: #25
RE: عمومی سازی و بومی سازی در جاوا
پست‌ها: 11,943
تاریخ عضویت: 20 اردیبهشت 1390
اعتبار: 288
حالت من: Shad
۵٫۵- نمایش تاریخ و زمان

نمایش تاریخ و زمان نیز مشابه اعداد با توجه به زبان و کشور متفاوت است. اگر شما کدی مشابه زیر در برنامه دارید، بایستی آنرا تغییر دهید:

Date currentDate = new Date();
TextField dateField;
...
String dateString = currentDate.toString();
dateField.setText(dateString);

در زبان جاوا کلاس DateFormat وظیفه تنظیم چگونگی نمایش تاریخ و زمان را بر عهده دارد.
















دورمچم به جای ساعت یکنوار مشکی بستم
تا همه بفهمن من از همه هر چه زمانو متعلق به زمان است بیزارم
من هم روزی قلبی داشتم
که توسط مردمانی ازمیان شما شکست و شکست تا سنگی شد
واکنون روزگاریست که شیطان فریاد میزند..
انسان پیدا کنید سجده خواهم کرد...


=====ஜ۩۞۩ஜ=====

24-05-1391 02:14 ب.ظ
 
ارسال: #26
RE: عمومی سازی و بومی سازی در جاوا
پست‌ها: 11,943
تاریخ عضویت: 20 اردیبهشت 1390
اعتبار: 288
حالت من: Shad
۶٫۵- استفاده از قابلیتهای یونی‌کد

کد زیر سعی می‌کند کاراکتر بودن یک حرف را بررسی کند:

char ch;
...
if ((ch >= 'a' && ch <= 'z') ||
(ch >= 'A' && ch <= 'Z')) // WRONG!
این کد تنها برای زبان انگلیسی قابل استفاده است. برای مثال این کد، حرف ü در کلمه آلمانی Grün را یا حرف پ در کلمه پارس را کاراکتر تشخیص نمی‌دهد.

متدهای مقایسه موجود در کلاس Character از استاندارد یونی‌کد برای شناسایی کاراکترها استفاده می‌کند. بنابراین کد بالا را می توان بصورت زیر تغییر داد:

char ch;
...
if (Character.isLetter(ch))
















دورمچم به جای ساعت یکنوار مشکی بستم
تا همه بفهمن من از همه هر چه زمانو متعلق به زمان است بیزارم
من هم روزی قلبی داشتم
که توسط مردمانی ازمیان شما شکست و شکست تا سنگی شد
واکنون روزگاریست که شیطان فریاد میزند..
انسان پیدا کنید سجده خواهم کرد...


=====ஜ۩۞۩ஜ=====

24-05-1391 02:14 ب.ظ
 
ارسال: #27
RE: عمومی سازی و بومی سازی در جاوا
پست‌ها: 11,943
تاریخ عضویت: 20 اردیبهشت 1390
اعتبار: 288
حالت من: Shad
7.5- مقایسه رشته‌ها

معمولا هنگام مرتب سازی متن، رشته ها با یکدیگر مقایسه می‌شوند. یک برنامه معمولی برای مقایسه دو رشته ممکن است از کدی بصورت زیر استفاده کند:

String target;
String candidate;
...
if (target.equals(candidate)) {
...
if (target.compareTo(candidate) < 0) {
...
متدهای String.equals و String.compareTo عمل مقایسه را بصورت باینری انجام می دهند که برای بیشتر زبانهای موجود ناکارآمد است. برای مقایسه دو رشته بهتر است از کلاس Collator استفاده شود.
















دورمچم به جای ساعت یکنوار مشکی بستم
تا همه بفهمن من از همه هر چه زمانو متعلق به زمان است بیزارم
من هم روزی قلبی داشتم
که توسط مردمانی ازمیان شما شکست و شکست تا سنگی شد
واکنون روزگاریست که شیطان فریاد میزند..
انسان پیدا کنید سجده خواهم کرد...


=====ஜ۩۞۩ஜ=====

24-05-1391 02:15 ب.ظ
 
ارسال: #28
RE: عمومی سازی و بومی سازی در جاوا
پست‌ها: 11,943
تاریخ عضویت: 20 اردیبهشت 1390
اعتبار: 288
حالت من: Shad
۸٫۵- تبدیل متنهای غیر یونی‌کد

کاراکترها در زبان برنامه نویسی جاوا بصورت یونی‌کد ذخیره می‌شود. اگر برنامه شما از اطلاعات غیر از یونی‌کد استفاده می‌کند، بایستی اطلاعات را به یونی‌کد تبدیل نمایید.
















دورمچم به جای ساعت یکنوار مشکی بستم
تا همه بفهمن من از همه هر چه زمانو متعلق به زمان است بیزارم
من هم روزی قلبی داشتم
که توسط مردمانی ازمیان شما شکست و شکست تا سنگی شد
واکنون روزگاریست که شیطان فریاد میزند..
انسان پیدا کنید سجده خواهم کرد...


=====ஜ۩۞۩ஜ=====

24-05-1391 02:15 ب.ظ
 
ارسال: #29
RE: عمومی سازی و بومی سازی در جاوا
پست‌ها: 11,943
تاریخ عضویت: 20 اردیبهشت 1390
اعتبار: 288
حالت من: Shad
۶- نمایش اعداد

۱٫۶- استفاده از فرمتهای از پیش تعریف شده
با فراخوانی متدهای موجود در کلاس NumberFormat می‌توان رشته‌های حاوی اعداد، مقادیر پولی و علامت درصد را برای یک منطقه جغرافیایی خاص نمایش داد.
















دورمچم به جای ساعت یکنوار مشکی بستم
تا همه بفهمن من از همه هر چه زمانو متعلق به زمان است بیزارم
من هم روزی قلبی داشتم
که توسط مردمانی ازمیان شما شکست و شکست تا سنگی شد
واکنون روزگاریست که شیطان فریاد میزند..
انسان پیدا کنید سجده خواهم کرد...


=====ஜ۩۞۩ஜ=====

24-05-1391 02:15 ب.ظ
 
ارسال: #30
RE: عمومی سازی و بومی سازی در جاوا
پست‌ها: 11,943
تاریخ عضویت: 20 اردیبهشت 1390
اعتبار: 288
حالت من: Shad
۱٫۱٫۶- اعداد

با استفاده از متدهای کلاس NumberFormat می‌توان چگونگی نمایش اعداد از نوع double را تعریف کرد. مثال زیر یک عدد اعشاری را با توجه به منطقه تعریف شده نمایش میدهد:

Double amount = new Double(345987.246);
NumberFormat numberFormatter;
String amountOut;

numberFormatter = NumberFormat.getNumberInstance(currentLocale);
amountOut = numberFormatter.format(amount);
System.out.println(amountOut + " " + currentLocale.toString());
متد getNumberInstance الگوی نمایش منطقه مورد نظر را در صورت وجود برمیگرداند. خروجی مثال برای چندین منطقه مختلف:

۳۴۵ ۹۸۷,۲۴۶ fr_FR
345.987,246 de_DE
345,987.246 en_US
















دورمچم به جای ساعت یکنوار مشکی بستم
تا همه بفهمن من از همه هر چه زمانو متعلق به زمان است بیزارم
من هم روزی قلبی داشتم
که توسط مردمانی ازمیان شما شکست و شکست تا سنگی شد
واکنون روزگاریست که شیطان فریاد میزند..
انسان پیدا کنید سجده خواهم کرد...


=====ஜ۩۞۩ஜ=====

24-05-1391 02:16 ب.ظ
 


[-]
پاسخ سریع
پیام
پاسخ خود را برای این پیام در اینجا بنویسید.


کد تصویری
royalfuns
(غیر حساس به بزرگی و کوچکی حروف)
لطفاً کد نشان داده شده در تصویر را وارد نمایید. این اقدام جهت جلوگیری از ارسال‌های خودکار ضروری می‌باشد.

موضوعات مشابه ...
موضوع: نویسنده پاسخ: بازدید: آخرین ارسال
  onUnLoad Event در جاوا اسکریپت Friga 0 286 28-05-1391 02:45 ب.ظ
آخرین ارسال: Friga
  انواع اعداد اعشاری جاوا Friga 7 589 28-05-1391 02:43 ب.ظ
آخرین ارسال: Friga
  استفاده از پرانتزها در جاوا Friga 0 274 28-05-1391 02:38 ب.ظ
آخرین ارسال: Friga
  عملگرهای منطقی بولی Boolean در جاوا Friga 5 521 28-05-1391 02:32 ب.ظ
آخرین ارسال: Friga
  عملگر انتساب The Assignment Operator در جاوا Friga 0 321 28-05-1391 02:29 ب.ظ
آخرین ارسال: Friga

پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان