Bidi.ReorderingMode Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Qual è la modalità di riordinamento richiesta per un determinato oggetto Bidi? -oppure- Modificare l'operazione dell'algoritmo Bidi in modo che implementi alcune varianti all'algoritmo Bidi di base o approssima un algoritmo "Bidi inverso", a seconda di valori diversi della "modalità di riordinamento".
public virtual Android.Icu.Text.BidiOptions ReorderingMode { [Android.Runtime.Register("getReorderingMode", "()I", "GetGetReorderingModeHandler", ApiSince=29)] get; [Android.Runtime.Register("setReorderingMode", "(I)V", "GetSetReorderingMode_IHandler", ApiSince=29)] set; }
[<get: Android.Runtime.Register("getReorderingMode", "()I", "GetGetReorderingModeHandler", ApiSince=29)>]
[<set: Android.Runtime.Register("setReorderingMode", "(I)V", "GetSetReorderingMode_IHandler", ApiSince=29)>]
member this.ReorderingMode : Android.Icu.Text.BidiOptions with get, set
Valore della proprietà
la modalità di riordinamento corrente dell'oggetto Bidi
- Attributi
Commenti
Documentazione del getter delle proprietà:
Qual è la modalità di riordinamento richiesta per un determinato oggetto Bidi?
per android.icu.text.Bidi.getReorderingMode().
Documentazione del setter delle proprietà:
Modificare l'operazione dell'algoritmo Bidi in modo che implementi una variante all'algoritmo Bidi di base o approssima un algoritmo "Bidi inverso", a seconda di valori diversi della "modalità di riordinamento". Questo metodo deve essere chiamato prima setPara()di e rimane attivo fino a quando non viene chiamato di nuovo con un argomento diverso.
Il normale funzionamento dell'algoritmo Bidi come descritto nell'allegato Standard Unicode n. 9 consiste nell'accettare il testo archiviato in ordine logico (tastiera, digitazione) e per determinare come riordinarlo per il rendering visivo.
Con la modalità di riordinamento impostata su un valore diverso REORDER_DEFAULTda , questo metodo modifica il comportamento di alcuni dei metodi successivi in modo che implementino un algoritmo Bidi inverso o altre varianti di algoritmo.
Alcuni sistemi legacy archiviano il testo in ordine visivo e per le operazioni con algoritmi standard basati su Unicode, il testo deve essere trasformato in ordine logico. Questo è in effetti l'algoritmo inverso dell'algoritmo Bidi descritto. Si noti che non esiste alcun algoritmo standard per questo "Bidi inverso", quindi qui vengono implementate diverse varianti.
In altri casi, può essere consigliabile emulare una variante dell'algoritmo da logico a visivo (ad esempio, uno usato in MS Windows) o eseguire una trasformazione da logica a logica.
<ul><li>Quando la modalità di riordinamento è impostata su REORDER_DEFAULT, viene applicato l'algoritmo Standard Bidi Logical to Visual.</li>
<li>Quando la modalità di riordinamento è impostata su REORDER_NUMBERS_SPECIAL, l'algoritmo usato per eseguire trasformazioni Bidi quando la chiamata setPara deve approssimare l'algoritmo usato in Microsoft Windows XP anziché essere strettamente conforme all'algoritmo Unicode Bidi.
<br> Le differenze tra l'algoritmo di base e l'algoritmo indirizzato da questa opzione sono le seguenti: <ul><li>Within text a un livello di incorporamento pari, la sequenza "123AB" (dove AB rappresenta le lettere R o AL) viene trasformata in "123BA" dall'algoritmo Unicode e in "BA123" dall'algoritmo Windows.</li>
<li>Arabic-Indic numeri (AN) vengono gestiti dall'algoritmo Windows proprio come i numeri regolari (EN).</li></ul></li>
<li>Quando la modalità di riordinamento è impostata su REORDER_GROUP_NUMBERS_WITH_R, i numeri che si trovano tra testo LTR e testo RTL sono associati al testo RTL. Ad esempio, un paragrafo LTR con contenuto "abc 123 DEF" (dove le lettere maiuscole rappresentano i caratteri RTL) verrà trasformato in "abc FED 123" (e non "abc 123 FED"), "DEF 123 abc" verrà trasformato in "123 FED abc" e "123 FED abc" verrà trasformato in "DEF 123 abc". Questo rende l'algoritmo reversibile e lo rende utile quando è necessario eseguire il round trip (dall'oggetto visivo all'oggetto visivo e tornare all'oggetto visivo) senza aggiungere caratteri LRM. Tuttavia, si tratta di una variante dell'algoritmo Unicode Bidi standard.<br> Il testo di origine non deve contenere caratteri di controllo Bidi diversi da LRM o RLM.</li>
<li>Quando la modalità di riordinamento è impostata su REORDER_RUNS_ONLY, è necessario eseguire una trasformazione "Da logica a logica": <ul><li>Se il livello di testo predefinito del testo di origine (argomento paraLevel in setPara) è pari, il testo di origine verrà gestito come testo logico LTR e verrà trasformato nel testo logico RTL che ha lo stesso display visivo LTR.</li><li>Se il livello predefinito del testo di origine è dispari, il testo di origine verrà gestito come testo logico RTL e verrà trasformato nel testo logico LTR con lo stesso display visivo LTR.</li></ul> Questa modalità può essere necessaria quando il testo logico che è fondamentalmente arabo o ebraico, con possibili numeri o frasi incluse in inglese, deve essere visualizzato come se avesse un livello di incorporamento pari (questo può verificarsi se l'applicazione di visualizzazione considera tutto il testo come se fosse fondamentalmente LTR).
<br> Questa modalità può essere necessaria anche nel caso inverso, quando testo logico che è fondamentalmente inglese, con possibili frasi incluse in arabo o ebraico, deve essere visualizzato come se avesse un livello di incorporamento dispari.
<br> Entrambi i casi possono essere gestiti aggiungendo LRE o RLE all'inizio del testo, se il sottosistema di visualizzazione supporta questi controlli di formattazione. In caso contrario, il problema può essere gestito trasformando il testo di origine in questa modalità prima di visualizzarlo, in modo che venga visualizzato correttamente.
<br> Il testo di origine non deve contenere caratteri di controllo Bidi diversi da LRM o RLM.</li>
<li>Quando la modalità di riordinamento è impostata su REORDER_INVERSE_NUMBERS_AS_L, viene applicato un algoritmo "Bidi inverso". Le esecuzioni di testo con caratteri numerici verranno trattate come lettere LTR e potrebbero dover essere racchiuse tra caratteri LRM quando vengono scritte in sequenza riordinata (l'opzione INSERT_LRM_FOR_NUMERIC può essere usata con il metodo writeReordered a questa fine. Questa modalità equivale a chiamare setInverse() con l'argomento isInverse impostato su true.</li>
<li>Quando la modalità di riordinamento è impostata su REORDER_INVERSE_LIKE_DIRECT, l'algoritmo logico "diretto" a Visual Bidi viene usato come approssimazione di un algoritmo "Bidi inverso". Questa modalità è simile alla modalità REORDER_INVERSE_NUMBERS_AS_L , ma è più vicina all'algoritmo Bidi normale.
<br> Ad esempio, un paragrafo LTR con il contenuto "FED 123 456 CBA" (dove maiuscolo rappresenta i caratteri RTL) verrà trasformato in "ABC 456 123 DEF", anziché "DEF 123 456 ABC" con modalità REORDER_INVERSE_NUMBERS_AS_L.<br> Quando viene usato in combinazione con l'opzione OPTION_INSERT_MARKS, questa modalità aggiunge in genere contrassegni Bidi all'output in modo notevolmente più significativo rispetto alla modalità REORDER_INVERSE_NUMBERS_AS_L.<br> con opzione INSERT_LRM_FOR_NUMERIC nelle chiamate a writeReordered.</li>
<li>Quando la modalità di riordinamento è impostata su REORDER_INVERSE_FOR_NUMBERS_SPECIAL, l'algoritmo Logical to Visual Bidi usato in Windows XP viene usato come approssimazione di un algoritmo "Bidi inverso".
<br> Ad esempio, un paragrafo LTR con il contenuto "abc FED123" (dove maiuscolo rappresenta i caratteri RTL) verrà trasformato in "abc 123DEF.</li></ul>
In tutte le modalità di riordinamento specificando un algoritmo "Bidi inverso" (ovvero quelli con un nome che inizia con REORDER_INVERSE), le esecuzioni di output devono essere recuperate usando getVisualRun()e il testo di output con writeReordered(). Il chiamante deve tenere presente che in modalità "Bidi inversa" l'input è effettivamente ordinato visivamente e l'output riordinato restituito da getVisualRun() o writeReordered() vengono effettivamente eseguite o stringa di caratteri di output ordinato logicamente.<br> Per tutte le modalità "Bidi inversa", il testo di origine non deve contenere caratteri di controllo Bidi diversi da LRM o RLM.
Si noti che l'opzione OUTPUT_REVERSE di writeReordered non ha alcun significato utile e non deve essere usata in combinazione con alcun valore della modalità di riordinamento specificando "Bidi inverso" o con valore REORDER_RUNS_ONLY.
per android.icu.text.Bidi.setReorderingMode(int).
Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.