Zum Beispiel: fehlendeWie verwende ich den i18n-Schlüssel als Standard-Übersetzung in Rails 3?
I18n.t('something')
sollte nur
something
, wenn die Übersetzung ausgegeben.
Zum Beispiel: fehlendeWie verwende ich den i18n-Schlüssel als Standard-Übersetzung in Rails 3?
I18n.t('something')
sollte nur
something
, wenn die Übersetzung ausgegeben.
nein, nicht möglich. Wenn Sie I18 benutzen, müssen Sie eine Datei haben, die der Sprache entspricht, sonst wird I18n sich beschweren.
Natürlich können Sie die Standardsprache in Ihrer Datei environment.rb festlegen. Sollte in der Nähe der Unterseite sein und Sie können dies für jede gewünschte Sprache einstellen, aber in Ihrem locales/
Ordner müssen Sie eine entsprechende yml
Übersetzung haben.
Es ist möglich: Abschnitt 4.1.2 Defaults bei Rails Internationalization (I18n) API See.
I18n.t :missing, :default => 'Not here'
# => 'Not here'
Randbemerkung: dies helfen könnte herauszufinden, was Rails der aktuelle Bereich denkt, ist (zB bei der Verwendung von „.something“)
http://unixgods.org/~tilo/Rails/which_l10n_strings_is_rails_trying_to_lookup.html
auf diese Weise besser Sie fehlt, die vermeiden kann Übersetzungen wegen falscher Platzierung von Übersetzungszeichenfolgen in der L10n-Datei/falsche Schlüssel
Davids Antwort ist die richtige Lösung für die Frage, ein anderer (ausführlicherer) Weg ist es zu re scue und geben Sie den Schlüssel zurück:
def translate_nicely(key)
begin
I18n.translate!(key)
rescue
key
end
end
Auf Schienen 4 können Sie den Ausnahmebehandler ändern.
Fügen Sie die folgenden config/initializers/i18n.rb
:
module I18n
class MissingTranslationExceptionHandler < ExceptionHandler
def call(exception, locale, key, options)
if exception.is_a?(MissingTranslation)
key
else
super
end
end
end
end
I18n.exception_handler = I18n::MissingTranslationExceptionHandler.new
Jetzt auf Sie sieht Sie nur tun können:
zum Thema<p><%= t "Not translated!" %></p>
Guide: http://guides.rubyonrails.org/i18n.html#using-different-exception-handlers
Man könnte dies nur für eine bestimmte Umgebung nur wünschen. Das Hinzufügen als Initialisierer begrenzt die Möglichkeiten. Aber danke für den Link. –
Mit Logik Ausnahme für die bedingte Strömung im Allgemeinen ist schlechte Übung. Aus dem Refactoring-Buch: http://www.refactoring.com/catalog/replaceExceptionWithTest.html –
Ich würde zustimmen, dass es in der Regel schlechte Praxis ist, habe ich auch darauf hingewiesen, Davids Lösung ist der richtige Weg, um zu zurückgreifen ein Standardwert Natürlich gibt es auch (pragmatische) Fälle, in denen Sie nicht möchten, dass die Anwendung einen Fehler aufdeckt und einen vernünftigen Standard verwendet, um eine bessere Benutzererfahrung bereitzustellen. Ich würde sagen, dass es fair ist, von den Richtlinien abzuweichen und Fehler gut zu handhaben, wenn dies der Fall ist. – Steventux