الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

من لديه قاعدة بيانات تحتوي اسماء عربية ومقابلها ترجمتها بالأنجليزي؟؟؟

بدأه qaher في 21 أكتوبر 2008 · 8 رد · 3,056 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

من لديه قاعدة بيانات تحتوي اسماء عربية ومقابلها ترجمتها بالأنجليزي؟؟؟

يعني ترجمة كلمة صالح هي Saleh

تحياتي لكم

#2

لا إجابة

#3

السلام عليكم ورحمة الله

أخي العزيز لم أفهم ما تريده .... إذا أردت أنت تصميم قاعدة البيانات عليك أن تعرف عامودين للاسم عامود اسم العربي وعامود اسم الإنجليزي ... على الأغلب هيك إلا

إذا في طريقة أخى أفضل منها انا لا أعرفها ....

انا حاليا بصدد إنشاء هذه الفكرة ..أرجوا من الأعضاء الكرام توضيح فكرة تغيير لغة الواجهة وما يترتب عليها في قاعدة البيانات وفي الواجهة

أتمنى لكم التوفيق و النجاح

من وجد الله فماذا فقد -- ومن فقد الله فماذا وجد

Don't Say I Don't Know But Say I Will Try

#4

مرحباً أخواني الكرام .

إذا كان المقصود كيف يمكنك عمل البرنامج متعدد اللغات :

يمكنك استخدام ملف نصي يحوي عدة أسطر ( كل سطر يمثل عنوان زر ما ), هذه العملية ستبط عليكم جهد طلب بعض المستخدمين لكتابة لغتهم الخاصة .

لتبسيط الفكرة :

في مجلد منشأ في مجلد البرنامج, ولنفرض أن البرنامج موجود في ( D:\MyApplication ) والمجلد الخاص باللغات منشأ في نفس المكان ( D:\MyApplication\Languages ), يمكنك قراءة الملفات كالتالي :

 

[color= #000000; font-weight: bold;]Private [color= #000000; font-weight: bold;]Function GetAvailabeLanguages[color= #009900;]( Byval Path [color= #b1b100;]As String[color= #339933;], Byref AvailableLanguages [color= #b1b100;]As [color= #990000;]List[color= #009900;]( 
Of String [color= #009900;])[color= #009900;]) [color= #b1b100;]As Boolean[color= #009900;]([color= #009900;])

Dim Files[color= #009900;]([color= #009900;]) [color= #b1b100;]As String [color= #339933;]= IO[color= #339933;].Directory[color= #339933;].GetFiles[color= #009900;]( Path[color= #339933;], [color= #0000ff;]"*.txt"[color= #339933;], [color= #cc66cc;]0 [color= #009900;])

[color= #b1b100;]If Files[color= #339933;].Length [color= #339933;]> [color= #cc66cc;]0 Then

[color= #b1b100;]For [color= #990000;]Each FileName [color= #b1b100;]As String In Files

AvailableLanguages[color= #339933;].Add[color= #009900;]( IO[color= #339933;].Path[color= #339933;].GetFileNameWithoutExtension[color= #009900;]( FileName [color= #009900;]) [color= #009900;])

[color= #990000;]Next FileName

[color= #b1b100;]Return [color= #000000; font-weight: bold;]True

[color= #990000;]End [color= #b1b100;]If

[color= #b1b100;]Return [color= #000000; font-weight: bold;]False

[color= #990000;]End [color= #000000; font-weight: bold;]Function

استخدام ( Usage ) :

Public Class Form1
Dim Path As String = IO.Path.Combine( Application.StartupPath, "Languages\" )
Dim AvailableLanguages As New List( Of String )

Private Sub Form1_Load( Byval Sender As System.Object, _
Byval E As System.EVentArgs ) Handles MyBase.Load
 If GetAvailableLanguages( Path, AvailableLanguages ) Then
For Each Lng As String In AvailableLanguages
Dim NewLang As New ToolStripMenuItem( Lng )
NewLang.Tag = Path & Lng & ".txt"
AddHandler NewLang.Click, AddressOf Langs_Cick
Next Lng
End If
End Sub

Private Sub Langs_Click( Byval Sender As System.Object, 
Byval E As System.EventArgs )
Dim MNUItem As ToolStripMenuItem = DirectCast( Sender, ToolStripMenuItem )
' هنا عليكم استدعاء عملية إدراج اللغة, كمثال ( SetLanguage ) وهذه العملية لها Param يدعى ( Path )
' أي اننا سنجعل العملية تقرأ مباشرةً من الملف ( الملف النصي ) .
SetLanguage( MNUItem.Tag.ToString )
End Sub

Private Sub SetLanguage( Byval Path As String )
Dim MaxItems As Integer = 100
' فرضنا أنه لدينا 100 عنصر .
Dim Language() As String = IO.File.ReadAllLines( Path )
' عليكم استخدام جملة شرطية للتأكد أن ملف اللغة يناسب محتويات البرنامج .
If Language.Length = MaxItems Then
' امثلة بسيطة
Button1.Text = Language( 0 )
Button2.Text = Language( 1 )
Button3.Text = Language( 2 )
End If
End Sub

End Class

هنالك طرق عديدة لعمل المذكور, كان لدي مشروع يتكلم عن هذه الفكرة, سأحاول البحث عنه :) .

إذا كان قصد الأخ Qaher أنه يريد ملف قاعدة بيانات يحوي جميع مصطلحات اللغة الإنكليزية بمايقابلها في اللغة العربية, فدعني أقول لك شيئاً ( لا أعتقد أن الذين سهروا الليالي في جمع مصطلحات إنكليزية لعمل مترجم, سيكونون مسرورين لتوزيعها مجاناً, فإذا كان البرنامج الذي يحوي هذه البيانات غير مجاني, وأنت على علم أنك غير قادر على استخدامك اياها مع برنامجك حتى بعد شراء البرنامج خاصتها :S .

بالتوفيق للجميع, أي أسئلة على ( كيف يمكنني جعل البرنامج متعدد اللغات ) بإنتظار :) .

تم تعديل هذه المشاركة بواسطة Bashar Rabat في 6 يناير 2009 في 14:26

The important thing is not so much

that every child should be taught,

as that every child should be given the wish to learn.

#5

السلام عليكم

ان لم اخطىء فأعتقد انك تقصد ان لديك اسماء في قاعدة البيانات باللغة العربية وفي لحظة التشغيل والتنقل ترتجم هذه الاسماء بواسطة البرنامج الى اللغة الانكليزية , ان كان هذا ماتقصد فسأقول لك ان هذا الشيء ليس بالسهل ولكنه ليس مستحيل - انت لديك خيارات عديدة وافضل الخيارات هي : قبل ان ابدأ بالشرح ارغب بالقول انني لست جيد كفاية بقواعد اللغة العربية

1- تعريف الاسماء المشهورة والتي كتابتها لاتشبه لفظها مثل عبد الرحمن = Abd El Rhman وكذلك الاسماء الاخرى التي ان لم يتم العثور عليها فسيتم التحويل الى الخطوة الثانية

2- تصميم دالة او اجراء برمجي او اي شي من هذا القبيل يقوم بمحاكاة الكلمة العربية ويعتمد او يحاول الاقتراب قدر الامكان لفهم القواعد العربية اثناء تحويلها الى اللغة الانكليزية

سأترك لك فكرة بسيطة لتقوم بذلك ممثلة مشروع صغير مرفق مع الرد - مع العلم انها مجرد فكرة ولم تاخذ من الوقت ولكني توقفت قليلا في البرمجة عند الوصول للحرف "ي" لأحاول الوصول الى القواعد العربية فمثلا اذا كان الأسم "ياسر" فمعنى هذا ان الاسم يجب ان يكتب هكذا "YASER" ولكن اذا كان الاسم "امين" فيجب كتابة الاسم هكذا "AMEN" وضعت الشرط اذا كان حرف الياء قد جاء في بداية الكلمة فسيتحول الى حرف ال"Y" باللغة الانكليزية اما اذا جاء في مكان اخر ماعدا هذا فسيكون "E" مع الاخذ بالحسبان انه قد يكون الاسم مركب مثلا "يسرى ياسر" فعند وجود فراغ قبل الكلمة يجب ان تعامل مثل ما تعامل الكلمة عند بداية جملة , الموضوع اعقد من هذا بكثير فالأسماء تختلف كتابتها باختلاف الاحرف التي قبلها او التي بعدها , على اي حال المشروع مرفق وهو بسيط جدا ويمكنك ان تفهم الفكرة.

وهذه فكرة الكود


Dim CharMatrix() As String
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim ARstr As String = TextBox1.Text
ReDim CharMatrix(0 To ARstr.Length - 1)
TextBox1.Clear()
TextBox2.Clear()
For i As Integer = 0 To ARstr.Length - 1
Select Case ARstr(i)
Case "أ"
CharMatrix(i) = "A"
Case "ا"
CharMatrix(i) = "A"
Case "ب"
CharMatrix(i) = "B"
Case "ت"
CharMatrix(i) = "T"
Case "ث"
CharMatrix(i) = "TH"
Case "ج"
CharMatrix(i) = "CH"
Case "ح"
CharMatrix(i) = "H"
Case "خ"
CharMatrix(i) = "KH"
Case "د"
CharMatrix(i) = "D"
Case "ذ"
CharMatrix(i) = "TH"
Case "ر"
CharMatrix(i) = "R"
Case "ز"
CharMatrix(i) = "Z"
Case "س"
CharMatrix(i) = "S"
Case "ش"
CharMatrix(i) = "SH"
Case "ص"
CharMatrix(i) = "S"
Case "ض"
CharMatrix(i) = "DH"
Case "ط"
CharMatrix(i) = "T"
Case "ظ"
CharMatrix(i) = "DH"
Case "ع"
CharMatrix(i) = "AA"
Case "غ"
CharMatrix(i) = "KH"
Case "ك"
CharMatrix(i) = "K"
Case "ل"
CharMatrix(i) = "L"
Case "م"
CharMatrix(i) = "M"
Case "ن"
CharMatrix(i) = "N"
Case "ه"
CharMatrix(i) = "H"
Case "و"
CharMatrix(i) = "O"
Case "ي"

If i - 1 = -1 Then
CharMatrix(i) = "Y"
Else
If CharMatrix(i - 1) = " " Or CharMatrix(i - 1) = " " Then
CharMatrix(i) = "Y"
Else
CharMatrix(i) = "E"
End If
End If

Case " "
CharMatrix(i) = " "
Case " "
CharMatrix(i) = " "
Case " "
CharMatrix(i) = " "
End Select

Next

For j As Integer = 0 To CharMatrix.Length - 1
TextBox2.Text = TextBox2.Text + CharMatrix(j)
Next

End Sub
End Class
Public Class Form1

تحياتي

ar_name_to_en_name.rar

TELL IF YOU KNOW , ASK IF YOU DON'T !

Website: http://www.zaidrix.com

#6

عذراً على التدخل, لكني أحب الإختصار .

الـ Code التالي هو Code استخدمته في ترجمة لغة الـ Chat التي استخدمها ( ومازال يستخدمها معظم العرب ) لتخاطب بلغة خاصة :

Module Translator
	Private NormalChars() As String = {"ِ", "ُ", "ً", "ْ", "ال", "ال", "اكس", "ى", "أ", "إ", "آ", "ا", "ب", "ب", "ت", "ث", "ج", "ح", "خ", "د" _
	, "ذ", "ر", "ز", "ش", "سِ", "كِ", "س", "ض", "ص", "ظ", "ط", "غ", "ع", "ف", "ف", "ق", "ك", "لّ", "ل", "م", "ن", "ه" _
	, "و", "و", "ي", "يّ", "ء", "ة", Nothing}
	Private SpecialChars() As String = {"-e-", "-o-", "-n-", "-", "al-", "al", "x", "a_", "2a", "2e", "2~", "a", "b", "p", "t", "s^", "g", "7", "5", "d" _
	, "z^", "r", "z", "sh", "ci", "c", "s", "'9", "9", "'6", "6", "'3", "3", "f", "v", "q", "k", "ll", "l" _
	, "m", "n", "h", "o", "w", "i", "y", "2", "8", "e"}

	Public Function TranslateIntoSpecial(ByVal Text As String) As String
		If Text = String.Empty Then
			Return ""
		Else
			Dim NewText As String = Text
			For I As Integer = 0 To NormalChars.Length - 1
				Try
					NewText = NewText.Replace(NormalChars(I), SpecialChars(I))
				Catch
				End Try
			Next
			Return NewText
		End If
	End Function
	Public Function TranslateIntoNormal(ByVal Text As String) As String
		If Text = String.Empty Then
			Return ""
		Else
			Dim NewText As String = Text
			For I As Integer = 0 To NormalChars.Length - 1
				Try
					NewText = NewText.Replace(SpecialChars(I), NormalChars(I))
				Catch
				End Try
			Next
			Return NewText
		End If
	End Function
End Module

الكود قادر على التحويل بين اللغتين العربية والعربية المرمزة بالأحرف الإنكليزية وبعض الأرقام .

تم تعديل هذه المشاركة بواسطة Bashar Rabat في 6 يناير 2009 في 19:31

The important thing is not so much

that every child should be taught,

as that every child should be given the wish to learn.

#7

السلا م عليكم ورحمة الله وبركاته

جزاكم الله خيرا أخواني ( Bashar Rabat , ZaiDriX ) ما شاء الله جهد راائع وإن شاء الله رح أستفيد من أكوادكم كثير

أتمنى لكم التوفيق و النجاح

--- والنصر لقضية المسلمين إن شاء الله ---

من وجد الله فماذا فقد -- ومن فقد الله فماذا وجد

Don't Say I Don't Know But Say I Will Try

#8

مرحباً أخواني الكرام .

لقد أرفقت مثال بسيط ( جداً ) عن كيفية استخدام ملفات نصية لجعل البرنامج ذات واجهة متعددة اللغات, للأسف لم أتمكن من إيجاد المشروع الذي تكلمت عنه :( .

بالتوفيق للجميع .

MultiLanguages.zip

The important thing is not so much

that every child should be taught,

as that every child should be given the wish to learn.

#9

مرحباً أخواني الكرام .

لاحظت أني نسبت إضاقة شيء مهم وهو تثبيت اللغة بعد التغيير أي إذا قام المستخدم بتغيير اللغة وأغلق البرنامج وأعاد فتحه سيجد أن اللغة مازالت كما وضعها :) .

طبعاً يتم الإعتماد على خاصية نصية تم إنشاءها في الـ Settings القيمة الإفتراضية English .

بالتوفيق .

MultiLanguages.zip

تم تعديل هذه المشاركة بواسطة Bashar Rabat في 7 يناير 2009 في 17:24

The important thing is not so much

that every child should be taught,

as that every child should be given the wish to learn.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…