[اعلان] تعريب RPGMaker VX وتدعيم اللغة العربية
السلام عليكم ورحمة الله وبركاته.
بدأت من فترة قصيرة فكرة تعريب RPG Maker VX أي: جعله يدعم اللغة العربية -يكتبها- ويعطي نظام Messaging محسن شبيه بـRPG Maker XP Postality Knights.
المهم، النتيجة غير سيئة على مستوى Editor:
http://9o9i.com/download/520485cee07e9ac5.png
لكن في اللعب: نتيجة غير مقبولة:..
http://9o9i.com/download/367485cee082c369.png
ونتيجة اللعب: حاصلة اما من Window_Message في بيانات سكربت او ملف RGSS202E.dll في RTP.
المغزى من الموضوع هو ان نحصل على اكبر قدر من المساعدة في تصميم البرنامج بحيث ما يكون صانع البرنامج Ordaz بل اعضاء منتدى المنتدى كلهم ^_^
Ordaz
رد: [اعلان] تعريب RPGMaker VX وتدعيم اللغة العربية
سلام عليكم ورحمة الله وبركاته
أي مساعدة عزيزي انا حاضر
واو !! بتكون اسطوري لو خليته يقرا العربية والأنجليزية بان واحد !!
^_______________________________^
وياليت يصدر اليوم قبل بكرة
رد: [اعلان] تعريب RPGMaker VX وتدعيم اللغة العربية
الف شكر
لكن راح تعرب البرنامج كامل ولا بس تخليه يكتب عربي
رد: [اعلان] تعريب RPGMaker VX وتدعيم اللغة العربية
اقتباس:
المشاركة الأصلية كتبت بواسطة PoKe Vx
الف شكر
لكن راح تعرب البرنامج كامل ولا بس تخليه يكتب عربي
من عنوانه انه بخليه يدعم العربية حتى في لعب ^_______________^
Encoding
رد: [اعلان] تعريب RPGMaker VX وتدعيم اللغة العربية
رائع اخوي..بس انا عندي فكره ربما تنفع تذكر يوم عرض احد مثال يخلي الار بي جي اكس بي يدعم العربي عن طريق برنامج ابو رشيد ليش ماتنفذ نفس الطريقة لاكن بطريقة مختلفة:
في برنامج ابو رشيد يسار تكتب عربي وباليمين يتحول للكود الي يخليه عربي بالبرامج الي ماتدعم العربي ببساطه انا فكرتي نفس الطريقة بمعنى يوم يكتب بمحرر النصوص بالبرنامج VX يحول هو للكود مباشرة مثال اريد اكتب منتدى عندما اظغط على الزر ميم بلوحة المفاتيح يتحول مباشرة للكود وهكذا الطريقة صعبه قليلاً ولا اعتقد انها يمكن عملها
رد: [اعلان] تعريب RPGMaker VX وتدعيم اللغة العربية
انا معكم أخي , و أنا أعدم هذه النقطة المهمة .. لكي يكون منتدانا أول منتدى يجعل الكتابة بالعربي مسموحة ... و بأنتظار أخر التطورات .. كريم .
رد: [اعلان] تعريب RPGMaker VX وتدعيم اللغة العربية
والله لو عندي خبرة شاركت في مساعدتك .. محتاجين هالتعريب كثير ><"
المشكلة أني اشتغل على لعبتي واللي بيلعبون فيها عرب فحلاته بالعربي
لكن ملاحظة هامة : يرجى اختيار خطوط واضحه كـ Tahoma لأن خط
Tahoma يدعم العربي سواء كان smooth أو بكسلي لأن خطوط
ابو رشيد غير واضحة وهذا اللي خلاني ما استعمله ^ ^
رد: [اعلان] تعريب RPGMaker VX وتدعيم اللغة العربية
طيب لو إن الموضوع بهذه الطريقة فالأفضل أن تجعل البرنامج يدعم العربية في الـ massage فقط لا أن تعربه تعريبا كاملا ... تصور مثلا أنك قمت بتعريب البرنامج ثم واجهتك مشكلة ,, إذا بحثت عنها وجدت حلها لكن بالإنجليزية !!
في هذه الحالات لا يكون التعريب مفيد خصوصا في تلك البرامج الغير منتشرة بكثرة في بلادنا والأفضل أن تكون على حالها وأنا أرى أن رأي ديمو1 هو الأفضل جرب برنامج أبو رشيد وأطلعنا على النتائج
ودمتم
رد: [اعلان] تعريب RPGMaker VX وتدعيم اللغة العربية
برنامج بورشيد تم تجريبة وهو برنامج فاشل في تعريب يتطلب خطوط خاصة وايضا لايسمح بوضع حروف انجليزية ايضا
وللعلم يحتوي برنامج على ادوات ترقيم خاصة حيث يعتمد عليها برنامج بورشيد لظهور بعض أحرف عربية مما تجعل بعض حروف مختفية للأسف
أما بخصوص كلام اخوي شارك انا معك أتمنى فقط بان يتم جعل البرنامج يدعم العربية دون تعريب القوائم حتى لاتصادف الأعضاء مشاكل أثناء أيجاد الدروس في المواقع الأخرى او عند قرائة ملفات المساعدة أحيانا.
رد: [اعلان] تعريب RPGMaker VX وتدعيم اللغة العربية
رد: [اعلان] تعريب RPGMaker VX وتدعيم اللغة العربية
خلوني اخلص كم شغلة وراح اساعدكم في فك ضغط وتحرير ملفات DLL
والله لو يدرون عنكم اليابانين، يذبحونكم وياكلون لحمكم
رد: [اعلان] تعريب RPGMaker VX وتدعيم اللغة العربية
يا اخي لو تتسحب عيوني مثلهم بعد ما يقدرون يسوون شي
محد قالهم يخلون البرنامج بهذا الشكل المفروض يكون
مرن وقابل للتعديل على اللغة مثل الباقي .
مب مهم يتعرب البرنامج ككل الأهم المسجات الخاصة بحوار
الشخصيات ويكون الخط Tahoma ويدعم علامات الترقيم
والكتابة بالانجليزية في وقت واحد ^ ^
خلوها مفاجأة للصيف ^ . ^
1 مرفق
رد: [اعلان] تعريب RPGMaker VX وتدعيم اللغة العربية
Unpacked RGSS202E
ready to modifying
______________________________
_RGSS202E.DLL
رد: [اعلان] تعريب RPGMaker VX وتدعيم اللغة العربية
رد: [اعلان] تعريب RPGMaker VX وتدعيم اللغة العربية
مادري اعتقد انه هذا سكربت ممكن عن طريقة نكتب بالعربية
لو قمنا بتعديله بأذن الله تعالى :
كود:
=begin rdoc
= #027 Win32API インタプリタ
== 概要
Win32APIの機能を利用するスクリプトの共通モジュールです。共通する動作をこの
スクリプトにまとめて、機能の不具合の発生を最低限に抑える役割を果たします。
== 注記事項
* Win32API に依存します。動作するPCの機種によってごく稀に予測できない不具合が
生じる場合があります。
* 設定・動作の詳細は設定セクションの[設定・動作について]をご覧下さい。
== このスクリプトの情報
バージョン:: 2.0.1
対応:: RPGツクールXP, RPGツクールVX(共通)
配布元:: http://quiet-labs.net/s/027/
作成者:: ユミル ( mailto:info@quiet-labs.net )
挿入位置:: [VX / XP] 常に一番上に挿入してください
動作条件:: [VX / XP] 特になし
==サポート
* 不具合などがありましたら掲示板で報告していただければ幸いです。
* 設定や組み込みなどで不明な点が有れば掲示板にてお尋ね下さい。
== 更新履歴
[2.1.0]
更新 : 2008-04-02
* Windows の環境変数を取得するメソッドを追加。
[2.0.0]
更新 : 2007-12-29
* RPGツクールVX に対応。
* #023「文字列エンコード変換」を吸収し、仕様を変更。
* スクリプト全体の改良。
[1.0.1]
更新 : 2007-09-01
* DLL のファイル名に関するバグを修正。
* 一部のコメントを追記。
[1.0.0]
更新 : 2007-08-27
* 公開。
=end
# このサイトの名前空間。
module QuietLab
end
# このスクリプトの名前空間。
module QuietLab::Script_27
# このスクリプトのバージョンの日付表記。
Version = 2008_04_02
end
# Win32API を操作するモジュール。
module QuietLab::Win32API
@@apis = {}
module_function
# 呼び出されたメソッドが定義されていなかった時、インタプリタがこの
# メソッドを呼び出します。
def method_missing(name, *param)
return @@apis[name].call(*param) if @@apis[name]
super(name, *param)
rescue => exp
# バックトレースを調整するために例外を書き替え
exp.backtrace.shift
raise(exp.class, exp.message, exp.backtrace)
end
# API 関数を定義します。引数は Win32API.new と同じです。
def define_api(dllname, proc, import, export)
key = sprintf('%s_%s', dllname.split('.', 2)[0], proc).intern
return if @@apis[key]
@@apis[key] = Win32API.new(dllname, proc, import, export)
end
define_api('user32', 'FindWindow', 'pp', 'i')
define_api('kernel32', 'GetPrivateProfileString', 'pppplp', 'l')
define_api('kernel32', 'MultiByteToWideChar', 'ilpipi', 'i')
define_api('kernel32', 'WideCharToMultiByte', 'ilpipipp', 'i')
define_api('kernel32', 'ExpandEnvironmentStrings', 'ppl', 'l')
# RGSS のバージョン情報を持つ配列を返します。
# [ 0 : DLL ファイル名, 1 : バージョン(長さ 3 の文字列), 2 : 言語( J/E ) ]
def version_data
buffer_size = 16
buffer = "\0" * buffer_size
size = kernel32_GetPrivateProfileString \
("Game", "Library", '', buffer, buffer_size, '.\\Game.ini')
buffer.delete!("\0")
buffer.match(/^RGSS(\w{3})([A-Z]).dll$/).to_a
end
# RGSS のバージョンを返します。返り値は Float です。
def rgss_version
version_data[1].to_i / 100.0
end
# RGSS の動作言語を返します。返り値は Symbol です。
def rgss_language
case version_data[2]
when 'E' : Language::English
when 'J' : Language::Japanese
end
end
# ゲームの名前を返します。文字列は Shift_JIS エンコードです。
def game_name_sj
buffer_size = 256
buffer = "\0" * buffer_size
size = kernel32_GetPrivateProfileString \
("Game", "Title", '', buffer, buffer_size, '.\\Game.ini')
buffer.delete("\0")
end
# ゲームの名前を返します。。
def game_name
convert_encoding(game_name_sj, Encoding::Shift_JIS, Encoding::Default)
end
# メインウィンドウのウィンドウハンドルを返します。
def get_window_handle
window_name = case rgss_version.to_i
when 1 : "RGSS Player"
when 2 : "RGSS2 Player"
end
user32_FindWindow(window_name, game_name)
end
# 文字列に含まれる環境変数の指定を、その値に置き換えます。
def get_env_string(format)
# フォーマットのパス中の / を \ に統一する
format = format.gsub(/\//, '\\')
# データの取得
buffer_size = 256
buffer = "\0" * buffer_size
kernel32_ExpandEnvironmentStrings(format, buffer, buffer_size)
buffer.delete!("\0")
buffer
end
end
# 言語定数を保持するモジュール。
module QuietLab::Win32API::Language
Japanese = :Japanese
English = :English
end
# エンコーディング定数を保持するモジュール。
module QuietLab::Win32API::Encoding
# UTF-8 のコードページ。
UTF_8 = 65001
# Shift_JIS ( MS932 ) のコードページ。
Shift_JIS = 932
# EUC-JP のコードページ。
EUC_JP = 20932
# iso-8859-1 のコードページ。(このエンコードは英文専用です)
ISO_8859_1 = 28591
# 現在の文字コードのコードページ。
Default = case $KCODE
when "UTF8" then UTF_8
when "EUC" then EUC_JP
when "SJIS" then Shift_JIS
else ISO_8859_1
end
end
# 全てのクラスから参照できるメソッドを定義しているモジュール。
module Kernel
module_function
# 文字コードを変換した結果を返します。
def convert_encoding(string, before, after)
wc2mb(after, mb2wc(before, string)).delete("\0")
end
# 指定したエンコードの文字列を Unicode 文字列に変換します。
def mb2wc(encode, string)
ucl = QuietLab::Win32API.kernel32_MultiByteToWideChar \
(encode, 0, string, -1, nil, 0)
uct = "\0" * (ucl * 2)
QuietLab::Win32API.kernel32_MultiByteToWideChar \
(encode, 0, string, -1, uct, ucl)
uct
end
# Unicode 文字列を指定したエンコードの文字列に変換します。
def wc2mb(encode, string)
mbl = QuietLab::Win32API.kernel32_WideCharToMultiByte \
(encode, 0, string, -1, nil, 0, nil, nil)
mbt = "\0" * mbl
QuietLab::Win32API.kernel32_WideCharToMultiByte \
(encode, 0, string, -1, mbt, mbl, nil, nil)
mbt
end
end
# QuietLab ScriptFormat v1.20
موقع :
http://quiet-labs.net/s/src.php?pid=......1&scv=2-1-0