Mã hóa bằng các ngôn ngữ khác (nói)


105

Đây là điều tôi luôn tự hỏi và tôi không thể tìm thấy bất kỳ đề cập nào về nó trên mạng. Khi một cửa hàng từ Nhật Bản viết mã, liệu tôi có thể đọc nó bằng tiếng Anh không? Hay các ngôn ngữ, như C, PHP, bất cứ thứ gì, có bản dịch tiếng Nhật mà họ viết không?

Tôi đoán điều tôi đang hỏi là liệu mọi lập trình viên trên thế giới có biết đủ tiếng Anh để sử dụng chính xác những từ dành riêng mà tôi làm không?

Mã này có:

If (i < size){
    switch
        case 1:
            print "hi there"
        default:
            print "no, thank you"
} else {
    print "yes, thank you"
}

hiển thị giống hệt như tôi đang nhìn thấy nó ngay bây giờ bằng tiếng Anh hoặc một số người không nói tiếng Anh khác sẽ thấy các từ "if", "switch", "case", "default", "print" và " khác "bằng ngôn ngữ mẹ đẻ của họ?

CHỈNH SỬA - vâng, điều này là nghiêm trọng. Tôi không biết liệu các bản địa hóa khác nhau của một ngôn ngữ có các từ khóa khác nhau hay không. hoặc nếu thậm chí có các bản địa hóa khác nhau.


3
Câu hỏi hệ quả: Có ngôn ngữ chính thống nào có từ khóa không phải bằng tiếng Anh không (ngay cả khi ngôn ngữ này ban đầu được phát minh ở một nơi mà tiếng Anh không phải là ngôn ngữ mẹ đẻ)?
Jon Schneider

Câu hỏi này khiến tôi nhớ lại một lần trò chuyện với một người (người nước ngoài), người nghĩ rằng ngôn ngữ chính của Đức Chúa Trời là tiếng Anh, do đó những người khác phải học nó để có thể hiểu được lời cầu nguyện của họ. (Tôi không có ý thô lỗ, câu hỏi thú vị dù sao)
wallyqs

Và tôi đã nghĩ rằng Chúa toàn năng!
Autodidact

Chúa chỉ biết một ngôn ngữ. Đó là một phương ngữ khó hiểu của một ngôi làng Lưỡng Hà đã tuyệt chủng. Đây là lý do tại sao anh ấy không đáp lại lời cầu nguyện của bạn và tại sao những điều xấu lại xảy ra với những người tốt (anh ấy chỉ cảm thấy rất bối rối).
Anthony

1
Ồ, và bây giờ tôi đã đọc một số câu trả lời ... Câu hỏi hay. Tôi luôn cho rằng có những phiên bản mã máy tính được bản địa hóa, nhưng hãy nghĩ về nó, một số quy ước nhất định sẽ là một cơn ác mộng để thực hiện (hướng từ phải sang trái hoặc theo chiều dọc) và những quy ước khác sẽ rất khó để đáp ứng (cụ thể là: dòng trong PHP kết thúc bằng dấu chấm phẩy. Điều này dựa trên phong tục phương Tây là kết thúc các mệnh đề hoàn chỉnh bằng dấu chấm phẩy. Hãy tưởng tượng bạn đang cố gắng bản địa hóa cho các phong tục chấm câu. Thậm chí có thể có dấu đứng đầu bằng tiếng Tây Ban Nha thú vị).
Anthony

Câu trả lời:


159

Nếu tôi hiểu rõ câu hỏi thực sự là: "Liệu mọi lập trình viên trên thế giới có đủ tiếng Anh để sử dụng chính xác những từ dành riêng như tôi không?"

Chà .. Tiếng Anh không phải là chủ đề ở đây mà là các từ dành riêng cho ngôn ngữ lập trình. Ý tôi là, khi tôi bắt đầu cách đây khoảng 10 năm, tôi không có chút hiểu biết nào về tiếng Anh, và tôi vẫn có thể lập trình những thứ đơn giản bằng cách học ngôn ngữ lập trình, ngay cả khi tôi không biết chúng nghĩa là gì (bằng tiếng Anh). Trên thực tế, điều này đã giúp tôi học tiếng Anh.

Ví dụ. Tôi biết để thực hiện một "iteración" (tất nhiên là lặp lại) tôi phải viết:

 for( i = 0 ; i < 100 ; i++ ) {}

Đối với tôi "cho", ";" và "++" trong đó các từ hoặc ký hiệu nước ngoài đơn giản. Sau đó, tôi biết rằng "for" có nghĩa là "para" và "while" có nghĩa là "mientras", v.v. nhưng thực ra tôi không cần biết tiếng Anh, nhưng trong trường hợp của tôi, điều tôi cần là biết "C".

Tất nhiên khi tôi cần học thêm nhiều thứ, tôi phải học tiếng Anh, vì tài liệu được viết bằng ngôn ngữ đó.

Vì vậy, câu trả lời là: Không, tôi không hiểu nếu, trong khi, cho vv bằng ngôn ngữ mẹ đẻ của tôi. Tôi thấy chúng bằng tiếng Anh, nhưng chúng không có ý với tôi bất kỳ điều gì khác mà chúng có ý nghĩa đối với ngôn ngữ lập trình.

Giống như câu lệnh switch trong bash: case .. esac. "Esac" là gì ... đối với tôi phần cuối của câu lệnh chuyển đổi trong bash.

Tôi đoán đó là những gì chúng tôi gọi là "trừu tượng"


10
Nhân tiện, 'esac' chỉ là trường hợp ngược. Tôi không thể biết liệu bạn có giả vờ không biết để đưa ra ý kiến ​​hay không, nhưng tôi có thể thấy điều đó sẽ gây nhầm lẫn cho những người không nói tiếng Anh như thế nào.
pbh101

9
Chắc chắn, như fi là nếu, nhưng, tại một số điểm, ý nghĩa duy nhất mà họ có là "bạn kết thúc một câu lệnh chuyển đổi bằng cách viết 'esac'" ... Không phải họ đang gây nhầm lẫn hay không, nhưng họ không có nghĩa bất cứ thứ gì bằng tiếng Anh. Nhưng chúng có nghĩa trong C hoặc bash, hoặc pascal. Đó là điểm. Chúng tôi học ngôn ngữ lập trình.
OscarRyz

5
Lưu ý mũ trong Excel, macro đó được dịch sang ngôn ngữ địa phương và "if" trở thành "si" trong tiếng Pháp, điều này khiến các công cụ hoàn toàn không thể sử dụng được.
e-thoả mãn

9
Bạn sẽ luôn nhận được câu trả lời tốt nhất từ ​​một người nói tiếng Anh không phải là bản ngữ. Tôi Scotland và học tiếng Anh rất khó cho tôi quá ;-)
Davie

9
+1 Khi tôi bắt đầu lập trình, tôi thậm chí không biết cách phát âm goto đúng cách. Nhưng sau này, khi tôi biết nó có nghĩa là gì, nó nở một nụ cười tự mãn trên mặt tôi.
Hamish Grubijan

28

Trong ngôn ngữ Java, một số phương thức phải được đặt tên (ít nhất là một phần) bằng ngôn ngữ tiếng Anh do quy ước JavaBeans.

Quy ước này yêu cầu một thuộc tính X phải được thiết lập thông qua một cặp phương thức getX () và setX (). Ở đây ở Pháp-Canada, nơi một số nhà phát triển bắt buộc phải viết mã bằng ngôn ngữ Pháp, điều này dẫn đến sự việc sau:

interface Foo {

  Color getCouleur();

  void setCouleur(Color couleur);
}

9
Ôi què! Quan liêu lại thắng! :(
AR.

3
vâng, ở các trường học ở Pháp, họ dạy bạn theo cách đó. Điều đó thật tệ đến nỗi các sinh viên không bao giờ sử dụng những gì họ đã làm trong lớp để viết mã trong thế giới thực và nhanh chóng dựa vào bản thân để viết nó bằng tiếng Anh đơn giản.
e-thoả mãn

Tại trường của tôi, một số giảng viên đã sử dụng tiếng Phần Lan trong mã ví dụ, và kết quả nói chung thậm chí còn khó xử hơn, ngay cả khi tôi hiểu lý do chính của họ cho điều đó. May mắn thay, "trong thế giới thực" điều đó hầu như chưa từng xảy ra (ít nhất là trong khu vực tư nhân). Tiếng Anh FTW (liên quan đến lập trình).
Jonik

2
@Jonik: Ít nhất thì bạn đã không phải tranh cãi về ASCII / bộ mã mở rộng. Ở một số nơi (tại đây), đã từng có một cuộc tranh luận lớn về việc đặt tên số nhận dạng của bạn a) bằng tiếng Anh, b) bằng tiếng Séc không dấu, c) bằng tiếng Séc có dấu (hầu hết bạn không thể nhập nếu không có bố cục bàn phím tiếng Séc , tuyệt vời cho khả năng bảo trì bởi bất kỳ ai khác).
Piskvor rời tòa nhà

@Piskvor, thực sự nếu bạn sử dụng tên Phần Lan, sẽ có một tình huống khó xử tương tự về việc nên sử dụng các ký tự đặc biệt (äöå) hay thay thế chúng bằng & o (và nếu bạn sử dụng chúng, bạn có thể gặp phải vấn đề về bộ ký tự). Nhưng vâng, may mắn thay, tôi đã không phải sử dụng tiếng Phần Lan trong mã ít nhất 7 năm. :)
Jonik

27

Tôi đang gặp khó khăn khi tìm tài liệu tham khảo, nhưng tôi nhớ lại ba câu chuyện.

Một hacker Lisp bảo vệ các hàm vô nghĩa như "cdr" và "car" bằng cách so sánh chúng với lập trình bằng ngôn ngữ không phải là ngôn ngữ mẹ đẻ của bạn: http://people.csail.mit.edu/gregs/ll1-discuss-archive-html/msg01171. html

Khi Yukihiro Matsumoto ("Matz") bắt đầu phát triển Ruby, anh ấy đã sử dụng các từ khóa tiếng Anh mặc dù anh ấy đang viết tất cả tài liệu bằng tiếng Nhật! . Không có tài liệu tiếng Anh nào về Ruby trong một vài năm, và rất ít người Mỹ sử dụng ngôn ngữ này. Nhưng bây giờ nó là một ngôn ngữ đẳng cấp thế giới, và việc nó ra đời ở Nhật Bản chỉ mang tính lịch sử. Nếu ngôn ngữ đã sử dụng các từ khóa trong hiragana, thì nó sẽ khó khăn hơn nhiều để trở nên phổ biến.

Tôi đã đọc một bài luận một lần - có thể người khác có thể tìm thấy nó, hôm nay Google không trợ giúp gì - điều đó cho thấy rằng việc dịch các từ khóa đã bị hiểu sai vì các từ thực ra không phải tiếng Anh - chúng là biệt ngữ. Không chỉ do (để sử dụng các ví dụ trên) parapour không hoàn toàn có nghĩa chính xác mà for has trong tiếng Anh, đối với những người không phải lập trình viên, cụm từ "vòng lặp for" là vô nghĩa. Ngay cả người Mỹ cũng phải học một nghĩa mới. Vì vậy, dịch ý nghĩa bề ngoài của từ sang một ngôn ngữ khác giống như việc chơi chữ đa ngôn ngữ hơn là thực sự hữu ích.


25

Tôi thực sự chưa nghĩ nhiều về việc lập trình bằng tiếng Nhật trước đây, nhưng chúng ta bắt đầu bằng cách sử dụng mẫu mã của câu hỏi.

Chỉ sử dụng các câu lệnh ngôn ngữ bằng tiếng Nhật với các biến bằng tiếng Anh:

// In Japanese, it makes more sense to put the keywords/modifiers as
// postfix expressions rather than prefix expressions.
(i < size)か {
     (l[i])は {
     1だ:
         「もしもし。」を書く;
     省略時値:
         「いいえ、いいですよ。」を書く;
     }
} ない {
     「はい、ありがとうございます。」を書く;
}

Dấu chấm phẩy thành (;) Tôi đoán .. = D
José Leal

1
Trên thực tế, tôi đã nghĩ rằng nếu bạn có thể viết mã bằng tiếng Nhật, bạn có thể sử dụng những thứ như → 定 問 上 下 不 như những từ đặc biệt, bạn có thể tưởng tượng tiếng Nhật nói ngọng không? (定 rember (→ (a lat) (問 ((空? lat) (引用 ())) (又 ...
wallyqs

1
Nếu bạn định viết bằng hậu tố, bạn cũng có thể đặt nó thành một phương ngữ Forth, ね? :-)
Ken

điều này thậm chí sẽ biên dịch ?? : \
NoobEditor

13

Như nhiều người đã chỉ ra, trong hầu hết các ngôn ngữ lập trình, bạn chỉ phải học một vài từ khóa, vì vậy không quan trọng lắm nếu chúng bằng tiếng Anh (hoặc một ngôn ngữ không phải của bạn, đối với vấn đề đó). Nó chỉ là một biểu tượng bạn liên kết với một số cấu trúc. Ví dụ: trong VB, bạn có "THEN", trong nhiều ngôn ngữ kiểu C sẽ là "{" và nó không tạo ra sự khác biệt lớn về khả năng đọc (tốt, ít nhất đó là cách tôi thấy, là một người không phải tiếng Anh người bản ngữ).

Nhưng đôi khi mọi thứ có thể trở nên rắc rối và việc lựa chọn ngôn ngữ (tự nhiên) ở đâu lại quan trọng trong việc đặt tên cho các định danh. Nếu tên của các biến, hàm, lớp, v.v., không có tên có ý nghĩa đối với bạn vì rào cản ngôn ngữ, thì việc theo dõi ngay cả đoạn mã đơn giản nhất cũng có thể khá khó khăn.

Tôi nhớ ai đó đã từng đưa cho tôi một đoạn Actionscript ngắn được lấy từ một blog nào đó. Những cái tên bằng tiếng Đức và vì tôi không nói được một từ nào của ngôn ngữ đó, nên những thứ đó cũng có thể được gọi là var_123, var_562 hoặc func_333 (và có lẽ tôi sẽ nhớ tên dễ dàng hơn hoặc ít nhất là có một cơ hội viết đúng chính tả mà không cần sao chép và dán). Vì đây là một đoạn trích ngắn, khép kín, tôi đã sử dụng một trình dịch trực tuyến để đặt các tên có nghĩa và hàm đó bằng ngôn ngữ mẹ đẻ của tôi (tiếng Tây Ban Nha) và sau đó, mọi thứ đã rõ ràng. Vấn đề là mã thực sự đơn giản, nhưng tôi chỉ có thể hiểu được nó mà không cần phải nỗ lực thêm quá nhiều (không cần thiết) chỉ khi tôi vượt qua rào cản ngôn ngữ.

Kể từ đó, tôi chuyển sang sử dụng tiếng Anh để đặt tên cho các định danh. Cho dù bạn muốn hay không, thì đó là "công cụ" cho lập trình, kỹ thuật và nói chung là những thứ kỹ thuật. Hầu hết các API được viết bằng tiếng Anh và hầu hết các tài liệu cũng vậy (và có lẽ các tài nguyên tốt nhất bạn có thể tìm thấy cũng bằng tiếng Anh). Ngoài ra, nó còn giữ cho mã của bạn mạch lạc hơn với mã mà bạn có khả năng sẽ tương tác và tôi nghĩ rằng nó có xu hướng nhỏ gọn và cô đọng hơn các ngôn ngữ khác như tiếng Tây Ban Nha (nếu không thì đó là lựa chọn tự nhiên của tôi).

Tất nhiên, nếu bạn không thể hiểu ít nhất một số tiếng Anh, vấn đề vẫn như cũ, vì vậy nó không phải là một giải pháp hoàn hảo. Tuy nhiên, với một số nhà phát triển đến từ nhiều quốc gia khác nhau, rất có thể ngôn ngữ chung để họ giao tiếp (thông qua mã và tất nhiên là các phương tiện khác) sẽ là tiếng Anh. Vì vậy, lựa chọn tiếng Anh có lẽ là lựa chọn tốt nhất, mặc dù nó sẽ không phải là giải pháp hoàn hảo cho vấn đề này.


Vâng. Một vấn đề nhỏ với điều này là khi lập trình viên không làm thế nào để viết tên các vars tiếng Anh đúng cách. Điều tồi tệ nhất mà tôi từng thấy là "String EmployiNeim" hehe (đùa thôi) nhưng tôi đã thấy mọi thứ thực sự gần với điều đó trước đây.
OscarRyz

Đối với một người nói tiếng Anh không phải là bản ngữ, bạn có khả năng sử dụng ngôn ngữ vững vàng một cách đáng ngạc nhiên. Xin chúc mừng, tiếng Anh là một thứ rất xa lạ, ngay cả đối với người bản xứ.
Nicholas Flynt

10

Ngôn ngữ lập trình xác định các từ khóa và tên lớp chuẩn, và cách tốt nhất là đặt tên tiếng Anh cho các kiểu, biến và hàm do người dùng xác định (tôi có thể nói với tư cách là người không phải là người bản ngữ ;-).

Vì vậy, có, nếu tất cả đều ổn, bạn sẽ có thể đọc mã.

Tuy nhiên, các ngôn ngữ như Java và Perl cho phép bộ Unicode đầy đủ cho các mã định danh, vì vậy nếu ai đó viết tên lớp của mình bằng Kanji, bạn có thể sẽ gặp sự cố.

Cập nhật: Đối với Perl, có một mô-đun trò đùa cho phép bạn viết Perl bằng tiếng Latinh. Nhưng thực sự chỉ có vậy, một trò đùa. Không ai sử dụng những thứ như thế này một cách nghiêm túc.

Cập nhật thứ hai: Ý tưởng về các ngôn ngữ lập trình được bản địa hóa không phải là điều nực cười. Ngôn ngữ macro của Excel được bản địa hóa, nhưng may mắn là nó được lưu trữ bằng một ngôn ngữ chuẩn (tiếng Anh) trong tệp, vì vậy bản địa hóa chỉ là một lớp trên cùng của điều bình thường. Những điều như vậy chỉ có ý nghĩa đối với những “chương trình” nhỏ, đối với những chương trình “thực” thì nó trở nên khó duy trì.


7

Trên thực tế có được một số ngôn ngữ lập trình không dựa trên tiếng Anh (Wikipedia)

Tôi là người Na Uy nhưng tôi luôn sử dụng tiếng Anh cho tất cả các mã ngoại trừ đầu ra (bỏ qua một số mã ngớ ngẩn từ trường học). Trên thực tế, tôi thường viết mọi thứ bằng tiếng Anh và sau đó dịch nó sang ngôn ngữ mẹ đẻ của tôi, sử dụng gettext (hoặc cái gì đó).


6

Tôi là người Anh và một vấn đề mà chúng tôi thường gặp phải là xung đột chính tả Mỹ / Anh. Điều này thường xảy ra với các thuật ngữ liên quan đến lập trình như Initialise () hoặc Initialize (), Analyze () hoặc Analyze (), v.v. Điều này có thể (có) dẫn đến các vấn đề khi cố gắng ghi đè các phương thức và đôi khi rất khó phát hiện.

Vì khuôn khổ (trong trường hợp của chúng tôi là C #) được thiết kế bởi người Mỹ, chúng tôi thấy rằng tốt nhất là nên nhất quán và sử dụng cách viết của người Mỹ. Chúng tôi thậm chí còn áp dụng Màu sắc.

Chúng tôi có sự pha trộn giữa các quốc tịch trong các nhóm phát triển của mình và hầu hết những người không phải là người Anh có xu hướng sử dụng cách viết của người Mỹ một cách tự nhiên.


4

AppleScript đã từng có trong tiếng Pháp và tiếng Nhật. Tôi không biết tại sao nó lại bị rút.


Có lẽ bởi vì rất khó để chia sẻ mã trong thời đại Internet ... VBA cũng được dịch. Ý kiến ​​tồi.
PhiLho

4

Đưa điều này lên cấp độ tiếp theo, còn việc có thể thay thế các biểu tượng thì sao?

Sau khi nhìn thấy các ngôn ngữ như Brainf ** kWhitespace, tôi đã nghĩ đến việc tạo ra một ngôn ngữ như thế này: nó sẽ giống với C ngoại trừ bạn sử dụng dấu ngoặc nhọn để mở, mở dấu ngoặc nhọn để đóng, hoán đổi nghĩa của + và -, * và / ,; và:,> và <, v.v.

Khái niệm này không hơn gì một trình biên dịch C được thay đổi phô trương. Tuy nhiên, giống như cách nghĩ về các từ khóa khác nhau, nó thách thức bạn suy nghĩ lại một số giả định cơ bản nếu bạn chưa bao giờ nghĩ đến những điều như vậy trước đây. Ví dụ:

int foo)int i, char c( }
    int six = 2 / 3:
    int two = six + 4:
    if )i > 0( }
        printf)"i is negative"(:
    {
{

2
này, tôi thích mặt cười đó.
aib

4

Tôi trong một nhóm người Pháp đang phát triển hệ thống phần mềm bằng C #. Mặc dù thực tế là các từ khóa của ngôn ngữ lập trình có vẻ ngoài là tiếng Anh, tôi tưởng tượng rằng bạn sẽ gặp khó khăn lớn khi đọc mã vì tất cả các tên hàm, biến, chú thích mã, bảng và cột cơ sở dữ liệu, thông số kỹ thuật, giao thức, v.v., tất cả đều có trong Tiếng Pháp, bao gồm các ký tự có dấu đáng yêu đó là ç, é, è, ù, v.v. Tôi thậm chí không chắc liệu hệ thống có chạy ở nơi khác hay không do lỗi bản địa hóa, chẳng hạn như dựa vào dấu phẩy để làm dấu phân tách thập phân mặc định.

Mặt khác, WinDev là một nền tảng lập trình phổ biến ở Pháp và ngôn ngữ lập trình WLanguage của nó có các từ khóa bằng tiếng Pháp hoặc tiếng Anh, hãy xem và ví dụ tại đây: văn bản liên kết


resharper sẽ bắt bất kỳ tào lao cụ thể về ngôn ngữ nào :) sử dụng thử nghiệm 1 tháng để làm sạch cơ sở mã của bạn.
v.oddou

4

Ngôn ngữ duy nhất tôi thấy được bản địa hóa là Excel với các macro của nó. Nếu bạn cố gắng tính tổng một cột bằng phiên bản Office tiếng Ý, bạn phải viết SOMMA(A1:A10)chứ không phải SUM. Thật là sự xấu hổ.

Nhân tiện, chỉ vì nó thú vị, đây là cách mã của bạn trông như thế nào với các từ khóa tiếng Ý:

se (i < size){
    commuta
        caso 1:
            stampa "hi there"
        normalmente:
            stampa "no, thank you"
} altrimenti {
    stampa "yes, thank you"
}

3

tôi đã thấy VBA được dịch sang các lệnh giống như tiếng Tây Ban Nha. đó là một trong những thứ xấu xí nhất từng thấy. tôi sẽ rất xấu hổ nếu có một cái gì đó như thế này trên máy tính của tôi.

PD: Tôi tình cờ nghĩ rằng tiếng Tây Ban Nha là một ngôn ngữ đẹp hơn nhiều so với tiếng Anh; nhưng dịch là SAI


Tôi không biết liệu nó có còn xảy ra với các phiên bản ms-office mới hơn hay không, nhưng các phiên bản cũ hơn không thể thực thi các tập lệnh được viết cho một bản địa phương khác.
EricSchaefer

1
Cách duy nhất để tiếng Anh "tốt hơn" so với tiếng Tây Ban Nha là tiếng Anh có lượng từ vựng lớn hơn, vì vậy nó sẽ ngắn hơn một chút để viết vào. Tôi rất ghét học tiếng Anh như một ngôn ngữ thứ hai; Tiếng Tây Ban Nha hợp lý hơn nhiều!
Chip Uni

Tiếng Tây Ban Nha (như hầu hết các ngôn ngữ) có vốn từ vựng lớn hơn rất nhiều so với tiếng Anh; nhưng tiếng Anh giúp bạn dễ dàng phát minh ra các từ mới mà vẫn có thể hiểu được. Điều đó làm cho nó rất ngắn gọn và dễ sử dụng cho các vấn đề kỹ thuật. Ngoài ra, tiếng Anh bắt buộc hơn nhiều và thiên về những câu đơn giản (nếu có, để tránh sự mơ hồ), có thể điều đó khiến nó trở nên 'tự nhiên' hơn đối với lập trình thủ tục. Cũng lưu ý rằng tôi sẽ không bao giờ nói rằng tiếng Anh "tốt hơn" bất kỳ ngôn ngữ nào khác; nhưng BASIC dựa trên tiếng Anh, việc dịch nó dẫn đến một mớ hỗn độn không thể đọc được.
Javier

"Tiếng Tây Ban Nha (như hầu hết các ngôn ngữ) có vốn từ vựng lớn hơn rất nhiều so với tiếng Anh": không đúng. Anh cũng được biết là có lời nhiều hơn bất cứ ngôn ngữ nào khác, xấp xỉ 250.000 vs 100.000 cho Tây Ban Nha
Luigi Plinge

Một trong những bài học ở đây hoàn toàn là thương mại; bạn không thể duy trì sự hỗ trợ cho bản địa hóa sang các ngôn ngữ mà cộng đồng lập trình VBE có thể ít hơn 1.000 cá nhân trên toàn thế giới. Microsoft đã làm điều này vào những năm 1990, và sau đó nhanh chóng rút lại. Một số bài học được truyền sang các cộng đồng lớn hơn nhiều, chẳng hạn như tiếng Tây Ban Nha. Thứ nhất, bạn không thể chia sẻ tập lệnh của mình với những người không có cùng phiên bản ngôn ngữ được bản địa hóa.
tripleee

3

Vâng, Như những người khác đã chỉ ra, các từ khóa và lệnh gọi hệ thống có thể sẽ vẫn bằng tiếng Anh.

Tuy nhiên, việc hiểu các từ khóa của ngôn ngữ chỉ là một phần nhỏ trong việc hiểu mã. Tên biến, tên chức năng và chú thích đều có nguy cơ là ngôn ngữ mẹ đẻ của tác giả.

Chỉnh sửa : Tôi vừa hồi tưởng lại tuổi trẻ của mình, nơi tôi đã đi trong bảng ánh xạ của TRS-80 tích hợp sẵn BASIC để chuyển từ khóa sang tiếng Pháp. Tôi có thể thay đổi tất cả các từ khóa nhưng tôi không thể làm cho bất kỳ từ khóa nào lớn hơn. Làm cho các chương trình vui nhộn.


Thật. "Chúng tôi sẽ chỉ sử dụng [chèn ngôn ngữ địa phương] cho mọi thứ từ tên biến đến nhận xét - đó chỉ là một ứng dụng nhỏ, ai sẽ thay đổi nó?" Vài năm sau, ở nơi khác: "Vâng, có những bình luận. Nếu tôi chỉ biết điều gì '// Meg tudom enni az üveget, nem árt nekem' có nghĩa là ..." (lang được thay đổi để nhấn mạnh)
Piskvor rời tòa nhà

Tôi nhớ ở trường đại học, ai đó đã vào DOS và thay đổi một số lệnh và tin nhắn thành tục tĩu, và nó vẫn hoạt động
JoelFan

3

Đừng đùa cợt về điều này. Vài năm trước, Microsoft đã công bố G # (German Sharp) - C # với các từ khóa và API tiếng Đức. Tất nhiên, đó là một trò đùa Cá tháng Tư, nhưng toàn bộ trang web về điều đó trông rất thực và chuyên nghiệp (và trên microsoft.com). Đáng sợ.

Tại nơi làm việc, chúng tôi sử dụng hai hệ thống xe buýt dã chiến, cả hai đều được phát triển ở các nước nói tiếng Đức, có sự pha trộn đáng sợ giữa tiếng Đức và tiếng Anh để nhận dạng, bao gồm một số người bạn giả đáng yêu. Đó là một mớ hỗn độn.

Không, từ khóa và mã định danh tiếng Anh vẫn ổn. Mặc dù một số người có thể tranh luận xem nó nên là Màu hay Màu :)


3

Trong một số dự án VBA mà tôi đã làm việc (vâng, rất sớm trong sự nghiệp của tôi), chúng tôi phải phát hiện phiên bản office được cài đặt trên máy của người dùng và thay đổi các công thức được sử dụng trong các bảng phát biểu cho phù hợp.

Vì chương trình của tôi bằng tiếng Bồ Đào Nha, "SUM" sẽ phải được dịch thành "SOMA", vân vân và vân vân. Tôi không thể tưởng tượng được công việc cần thiết để biến điều này thành hiện thực trong một số ngôn ngữ. Có ai khác bị với vấn đề này không?


3

Có một số ngôn ngữ đã dịch từ khóa. Ví dụ: công thức Excel. Nếu bạn viết một số phép tính trong bảng tính, điều này sẽ bằng ngôn ngữ của bạn.

May mắn thay, đây không phải là một thông lệ chung và ngay cả những người không nói tiếng Anh như tôi cũng cảm ơn Chúa vì có một ngôn ngữ chuẩn cho các từ khóa:

  • chia sẻ công việc của bạn dễ dàng hơn.
  • nó ngăn không cho tài liệu trở thành một cơn ác mộng lớn hơn nó đã từng.
  • Các từ và câu tiếng Anh thường ngắn gọn và mang tính thực dụng về mặt cú pháp. Trong văn học, các ngôn ngữ Latinh đẹp hơn nhiều, nhưng đối với các công cụ kỹ thuật, tiếng Anh là đá.

Và dừng ở đâu? Bạn có thể tưởng tượng một chữ C trong tiếng Hy Lạp cổ đại không?

Từ khóa phải ở một ngôn ngữ và tốt, nó bắt đầu bằng tiếng Anh, hãy để nó theo cách đó. Điều này có thể là tồi tệ nhất (ngôn ngữ châu Á?). Và vì vậy chúng tôi phải viết các phương pháp và nhận xét bằng tiếng Anh. Ok, nhiều công việc hơn cho chúng tôi, nhưng ít nhất cơ sở mã quốc tế vẫn phù hợp.

Tuy nhiên, có một trường hợp sử dụng tên và chú thích theo phương pháp ngôn ngữ mẹ đẻ có thể là một phương pháp hay: ở quốc gia thế giới thứ ba. Tôi sẽ đến Senegal trong vài tháng nữa để quản lý một dự án Django. Senegal có tỷ lệ hậu môn hóa rất lớn, và vì vậy, thật tuyệt khi họ tiếp thêm năng lượng để cải thiện kiến ​​thức lập trình của mình. Tiếng Pháp là ngôn ngữ mẹ đẻ ở đây, vì vậy sẽ không hiệu quả nếu buộc họ học máy tính VÀ một ngôn ngữ mới cùng một lúc.

BTW, đó sẽ là mã của bạn với các từ khóa tiếng Pháp:

Si (i < taille) {
    cas par cas :
        cas 1:
            afficher "salut"
        défaut:
            afficher "non merci"
} sinon {
    afficher "oui, merci"
}

Không phải là việc dịch các từ khóa không liên quan gì đến việc dịch các chuỗi. Tất nhiên, chúng tôi đã dịch "hi, there" bằng ngôn ngữ của chúng tôi. Các lập trình viên châu Âu thậm chí có xu hướng sử dụng I18N nhiều hơn so với người Mỹ để dịch vụ của họ có thể tiếp cận nhiều đối tượng hơn.


2

Nói chung, hầu hết các lập trình viên thích ứng với hình thức tiếng Anh. Tôi đã học lập trình khi tôi 7 tuổi và chỉ nói tiếng Do Thái (từ phải sang trái) và không có tiếng Anh, điều này khiến nó trở thành một trải nghiệm thú vị.

Vấn đề bạn thường gặp phải là với tài liệu, biến và tên hàm. Tôi đã thấy phần chia sẻ của mình về các biến trong các ngôn ngữ khác sử dụng bảng chữ cái tiếng Anh.

Ngôn ngữ duy nhất mà tôi quen thuộc thực sự được dịch là Logo cũ tốt (vẫn còn tuyệt vời cho đến ngày nay).


Shalom Uri, Ngoài ra còn có Ngôn ngữ lập trình tiếng Do Thái (HPL) trên Sourceforge. Giống như LOGO, nó hướng đến người dùng máy tính trẻ tuổi.
TonJ

2

Khi tôi còn nhỏ, chúng tôi đã đến Pháp, và trong một viện bảo tàng chúng tôi đã đến, tôi nhớ đã tìm thấy một màn hình hiển thị cho bạn cách viết chương trình máy tính. Ngôn ngữ là một số loại biến thể CƠ BẢN và tôi nhớ rõ nó bằng cách sử dụng POUR thay vì FOR, v.v. Tôi 7 tuổi và chỉ mới học CƠ BẢN, và dường như hoàn toàn tự nhiên đối với tôi rằng người Pháp sẽ có phương ngữ riêng như thế này !!

Tôi đoán nó có thể là LSE mà tôi đã thấy?


2

Ngôn ngữ kịch bản của Filemaker được bản địa hóa. Các tập lệnh (và dữ liệu!) Được lưu trữ ở dạng "tiêu chuẩn sorta" khủng khiếp.

Vì vậy, nếu bạn viết một script trong phiên bản tiếng Mỹ, sau đó mở nó lên trong phiên bản tiếng Pháp, tất cả các từ khóa và tên hàm tích hợp sẽ bằng tiếng Pháp. Nhưng tại sao nó không chạy ?! Aha! Phiên bản tiếng Pháp sử dụng "," làm dấu thập phân và do đó để tránh sử dụng ";" để tách các đối số hàm - trong đó phiên bản tiếng Mỹ sử dụng "." và "," tương ứng. Việc chuyển đổi này bạn phải tự thực hiện.

Vì vậy, bạn làm việc thông qua giao diện chỉnh sửa tập lệnh cực kỳ tồi tệ (bạn không thể viết tập lệnh dưới dạng tệp văn bản) để khắc phục tất cả những điều này. Nó chạy! Tuyệt quá! Kết quả đều sai! Ôi không! Aha! Ngày tháng 1-7-2004 mà bạn đã nhập trong phiên bản tiếng Mỹ đang được hiểu là tháng 7-1-2004 - dường như ngày tháng không chỉ được hiển thị mà còn được lưu trữ theo thứ tự phụ thuộc vào ngôn ngữ. Tôi đang đùa bạn à? Không.

[Lưu ý: Filemaker 8 và 9 có thể tốt - Tôi chỉ từng làm việc với 3 - 7.]


Ôi chao! Có vẻ như bạn nên đăng bài này lên thedailywtf.com
André vào

2

Câu hỏi của bạn là một câu hỏi thú vị liên quan đến Perl vì cú pháp của nó được thiết kế để tuân theo ngôn ngữ tự nhiên (tiếng Anh). Tôi tự hỏi liệu điều đó có gây khó khăn hơn cho những người không nói tiếng Anh không ...

Tất nhiên, Perl và Perlers từ chối chơi theo các quy tắc thông thường. Nhà khoa học điên Damian Conway đã viết mô-đun Lingua :: Romana :: Perligata sử dụng ma thuật đen của bộ lọc nguồn để cho phép bạn viết Perl bằng tiếng latin!


Tôi không nghĩ vậy. Thăm dò là mặc dù bạn biết tiếng Anh, bạn không thể nói while (cond) jump_to: label ... với Perl. Ý tôi là, giống như một goto hoặc một cái gì đó.
OscarRyz

hầu hết các thành ngữ 'ngôn ngữ tự nhiên như' của perl như "open () hoặc die ()" là khá tự nhiên đối với tôi với tư cách là một người nói tiếng Đức. tôi đoán tiếng Anh và tiếng Đức là đủ tương tự
bjelli

2

Ở Úc, chúng ta vẫn cần đánh vần màu sắc như màu sắc . Tuy nhiên, tôi thực sự thấy khó chịu khi các nhà phát triển (người Úc) khác, đang làm việc trong một dự án của Úc, quyết định rằng tên biến nội bộ cần phải được đánh vần theo cách Mỹ.


1

Sẽ là vô nghĩa, IMHO, đối với i18n một cú pháp ngôn ngữ . Nó sẽ giết chết bất kỳ loại tính di động nào.

Ngoại lệ duy nhất là các ngôn ngữ giáo dục, chẳng hạn như LOGO. Chúng được thiết kế để dễ học, vì vậy tính di động không phải là một vấn đề.


1
Khi bạn có một đối tượng lớn hơn, chẳng hạn như những người viết ra công thức trong Excel hoặc tạo hiệu ứng nhỏ để trình bày của họ, bạn phải xem xét thực hiện i18n cho "dành riêng" từ ...
rshimoda

1

Tôi đọc rất nhiều mã, nhưng vấn đề luôn nằm ở tên biến / phương thức và nhận xét, nếu họ nhận xét mã của họ bằng ngôn ngữ của họ, sử dụng một ngôn ngữ ký tự đặc biệt như tiếng Nhật hoặc Kirin, chúng tôi đang gặp rắc rối! nhưng các từ khóa tôi nghĩ chúng sẽ vẫn ở dạng tiếng Anh như chúng vốn có.


1

ở Ý

se (i < dimensione){
    scegli
        caso 1:
            stampa "ciao"
        mancante:
            stampa "no, grazie"
} altrimenti {
    stampa "sì, grazie"
}

Để xác nhận những lo lắng của một số người đăng trước, tôi đã thấy mã Fortran với macro bao gồm để dịch tất cả các từ khóa từ tiếng Anh sang tiếng Pháp. Cho phép tôi không tiếp tục về điều này.

Tôi cũng phải làm việc với một mã chứa đồng thời các mã nhận dạng bằng tiếng Ý, tiếng Đức, tiếng Anh và tiếng Pháp, không chỉ vì nó được phát triển ở nhiều nơi khác nhau, mà còn vì nhà phát triển chính nghĩ rằng nó rất thú vị và giúp anh ta không bị trùng lặp tên mã định danh ( tất nhiên, với một thói quen dài 2000 dòng ....)


0

Tôi nghĩ WordBasic đã được bản địa hóa. WordBasic đã được sử dụng để viết macro cho trong Word trước khi VBA được sử dụng.

Nếu tôi nhớ không lầm thì chỉ có WordBasic được viết bằng phiên bản tiếng Anh mới thực thi được trên tất cả các phiên bản được bản địa hóa. Nếu bạn viết một phiên bản tiếng Hà Lan, bạn chỉ có thể thực thi nó trên một Word Hà Lan.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.