Übersetzen zugeschrieben string
Habe ich ein UILabel mit einem zugeschrieben string. Hier ist ein printscreen der it:
Nun, ich habe übersetzen dieses zugeschrieben string > Englisch und Italienisch.
Ich bin auf der Suche nach einem Weg, dies zu tun. Kann ich bauen zugeschrieben wird string im code-Teil für Teil? Ich habe nur eine Lösung gefunden, wo die gesamte Zeichenfolge festgelegt ist und dann die Attribute werden durch Angebot. Aber wenn ich übersetze den string, weiß ich nicht, die reichen mehr haben, weil die Wörter länger oder kleiner.
- Versuchen Sie es mit der NSAttributedString Methode
enumerateAttributesInRange:options:usingBlock:
. Dies gibt jedem Attribut mit seiner Reichweite. Sie können extrahieren Sie die Zeichenfolge aus diesem Bereich Teil für Teil und übersetzen es.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Weitere Möglichkeit ist die Erstellung lokalisiert .rtf-Dateien aus, die zum erstellen
NSAttributedStrings
:Dynamische Formatierungen (z.B. Farben, Schriftarten spezifische an einige app-Einstellungen), ich bin mit ein paar html-ebenso wie bei der Formatierung, bei 1-char-tags, für die ich danach wenden Sie das format aus dem inneren des app.
Könnte die Methode danach werden wie folgt verwendet:
Wo
attrStr
werden kann@"Press <b>Next</b> button to ..."
.Etwas wie diese Methode funktionieren könnte. Es dauert einen NSAttributedString, Extrakte teilen, basierend auf Ihren Attributen, übersetzt jedes Teil, gelten die gleichen Attribute und kehrt schließlich die komplette übersetzte zugeschrieben string.
Können Sie die Vorteile der Tatsache, dass Sie können bauen eine zugeschrieben string von HTML-Daten. So schreiben Sie Ihren Text mit eingebettetem HTML-Attribute in Lokalisierten.string :
dann können Sie es abrufen, wie dies
Beachten Sie, dass Sie haben zu tun, ein bisschen mehr Arbeit mit den Parametern legen Sie die richtige schriftart, so wird es die Standard-schriftart für die html-Anzeige (Helvetica ?).
Ich würde dies lösen, indem Sie die übersetzung der einzelnen Teile der Zeichenfolge. Dies funktioniert in diesem Fall, da Ihr zugeschrieben string ist wirklich eine verkettete version der vier Saiten.
Aber stellen Sie sicher, dass Sie speichern das format, in dem Sie zahlen. In einigen Sprache der text könnte aus "3 Erweiterung". Sie können dies tun, indem
NSLocalizedStringWithDefaultValue
.Diese Weise erhalten Sie eine schöne strings-Datei, die Sie verwenden können, um zu übersetzen:
Ich in der Regel übersetzen markierten Teile separat, und fügen Sie einzigartige Platzhalter für den ursprünglichen text ist die leicht zu finden und zu ersetzen.
Beispiel: "Diese Wort ist Fett"
In lokalisierten.Streicher es werden
"BaseText" = "Das -Wort - ist Fett";
"HighlightedText" = "Wort";
Nun können wir die ursprüngliche Zeichenfolge mit "BaseText" Schlüssel:
1. Finden Sie den Bereich der "Wort-" substring
2. Ersetzen Sie es mit lokalisierten Strings, die mit "HighlightedText" - Taste.
3. Die Verwendung der original-Platzhalter-Sortiment, original-Platzhalter-Länge und die übersetzung Länge können Sie leicht ausrechnen, neuen Bereich und wenden bestimmte Attribute zu.
Dieser Ansatz ist flexibler als Verkettung und hängt nicht davon ab, die Worte, um in einer übersetzung.
Dies ist eine Erweiterung für:
Können Sie ersetzen mehrere Platzhalter einer nach dem anderen, wenn nötig.