Supporto per caratteri non inglesi?

0

Il supporto per caratteri non inglesi è comune nei linguaggi di programmazione? Voglio dire, tecnicamente, penserei che sia fattibile, ma non ho alcuna esperienza in qualcosa di diverso dall'inglese, quindi non so quanto sia comune.

So che esistono linguaggi di programmazione non in inglese, ma qualcosa come C #, C ++, C, Java o Python supportano classi / metodi / variabili non inglesi?

Esempio in go (url, link )

package main

import "fmt"

type 世界 struct {
    世界 string
}

func main() {
    fmt.Println("Hello, 世界")
    世界 := new(世界)
    世界.世界 = "hello world"
    fmt.Println(世界.世界)
}
    
posta TomJ 18.12.2012 - 05:26
fonte

6 risposte

5

Il supporto per i letterali non ASCII è presente praticamente in ogni lingua moderna. Cioè, puoi scrivere qualcosa come japanese = "今日は世界" in Java, Python, Go, C #, Ruby, ecc.

Supporto per identificatori non ASCII , ovvero cose come 英語で = "Hello world" è anche molto diffuso. Le lingue che consentono questo, tra gli altri, sono: Java , Python 3 , ma non 2 e 1, C # , ecc.

Dai un'occhiata a questo lungo elenco .

    
risposta data 18.12.2012 - 05:51
fonte
3

Erm ... In passato avevo programmato in inglese ma per supportare la lingua asiatica (principalmente cinese) nell'interfaccia utente.

Per la maggior parte della codifica, usiamo l'inglese. Solo per la questione dell'interfaccia utente, ovvero etichetta in Windows Form, Row Header in GridView, testo in html / aspx, useremo il cinese.

Pertanto, non codificheremo qualcosa come questo ...

type 世界 struct {
     世界 string
}

Ma avrà cose come

<b>你好, 欢迎你到来。</b>
    
risposta data 18.12.2012 - 07:18
fonte
2

Per C #, la specifica CLI lo consente

A source file is an ordered sequence of Unicode characters.

An identifier in a conforming program must be in the canonical format defined by Unicode Normalization Form C, as defined by Unicode Standard Annex 15. The behavior when encountering an identifier not in Normalization Form C is implementation-defined; however, a diagnostic is not required.

In realtà ho realizzato un programma rapido quasi interamente codificato in coreano qui per curiosità . Dopo aver esaminato il mio codice, io e i miei colleghi abbiamo concordato all'unanimità che non solo questo rende il codice più difficile da leggere, ma particolarmente difficile da scrivere in quanto richiede al programmatore di alternare continuamente il set di caratteri tra inglese / non inglese.

Sono tutto per Unicode e interiorizzazione e roba ... ma per la programmazione, non riesco a vedere il valore della codifica in altre lingue oltre all'inglese. Il pragmatismo è una virtù importante da avere come programmatore.

    
risposta data 18.12.2012 - 05:46
fonte
0

Penso che questa domanda sia un po 'più ampia di "posso scrivere Kanji nel mio linguaggio di programmazione preferito".

Per Java (e probabilmente la maggior parte degli altri linguaggi) Unicode è supportato e le stringhe devono essere esternalizzate a file di proprietà o simili. Ciò ti consente di gestire alcuni problemi comuni di internazionalizzazione:

  • I messaggi sono richiesti in più lingue (beh, questo è l'internazionalizzazione)
  • La posizione dei parametri può variare tra le lingue. Ad esempio "La bella donna" in inglese può trasformarsi nell'equivalente di "La bella donna" in altre lingue.
  • Se la tua applicazione supporta più lingue, la maggior parte degli sviluppatori non parlerà in modo fluente in tutte le lingue implementate. Anche in questo caso è meglio sostenere una singola lingua di sviluppo e impiegare cittadini di lingue straniere per tradurre in altre lingue.
risposta data 19.01.2016 - 08:59
fonte
0

Sebbene gli identificatori non ASCII siano supportati in un gran numero di linguaggi di programmazione come 9000 e AhJian hanno detto, sarebbe una cattiva pratica usare tale e ci sono diversi motivi per farlo.

Il primo è che in qualche momento nella funzionalità un collega straniero che non capisce la lingua può unirsi alla squadra, o il codice potrebbe dover essere rivisto da esperti o consulenti stranieri. Per loro sarà molto difficile capire il codice.

Il secondo, relativo al primo, è che potresti non ricevere aiuto o revisione nella rete StackExchange se non sostituisci gli identificatori con quelli inglesi.

La terza ragione è che molti dei termini di programmazione non sono tradotti nella lingua specifica.

    
risposta data 19.01.2016 - 09:36
fonte
-2

Quasi tutte le lingue supportano caratteri non ASCII direttamente o indirettamente.

es. in Java è possibile fornire direttamente i caratteri non ASCII; Ma in C # devi usare una sequenza di caratteri di escape, ad esempio \u00e1 per á .

Il supporto per non-ASCII dipende anche dall'editor di testo che stai usando.

    
risposta data 18.12.2012 - 07:23
fonte

Leggi altre domande sui tag