6
votes

Heroku ne loge pas le fichier de langue

Heroku ne semble pas charger config / local / pt.yml . (La langue est en cours d'installation correctement sur pt .)

i18n fonctionne parfaitement sur localhost, mais pas sur mon serveur Heroku .
Le code est chez https://github.com/aneves/deficit-Puzzzle

localhost: xxx

héroku: xxx

DUPS possibles:

Il y en a si Correspond à mon problème, mais ce sont des fils morts. Je ne veux pas ouvrir une prime sur un fil dont les commentaires de l'OP ont laissé sans réponse, je préfère avoir une bonne question avec un bon suivi. De plus, les questions ne cassent pas le problème avec précision et, donc, les réponses manquent le point.

  1. Un n'a pas de réponse et OP n'a pas suivi les commentaires;
  2. Un autre n'a qu'une réponse qui manque le point et OP ne suit pas sur le dernier commentaire non plus.


3 commentaires

Curieusement, toutes les traductions apparaissent dans i18n.backend mais pas dans i18n.t


@Alexanderwenzowski, merci! Votre commentaire compte définitivement comme une explication au problème, un moyen de résoudre le problème même sans la comprendre, ni même des indications fortement incitables à un tel correctif. dans mon livre. Mais Bounty ne peut pas être affecté à des commentaires. ;) Pourriez-vous poster le commentaire comme une réponse? (Ce problème I18N me dérangeait depuis la fin du 28 août ... Meh)


Heureux d'avoir pu aider!


5 Réponses :


3
votes

@Alexander Wenzowski m'a envoyé sur la bonne voie.

Il semble que le Byte Command Mark était en train de gâcher le chargement de Heroku de fichiers de localisation ...
Lorsque j'ai converti les fichiers pour ne pas avoir BOM, à l'aide de Notepad ++, tout a été corrigé. P>

Au début, j'essayais d'inspecter cette nouvelle chose pour moi, i18n.backend ... et puis j'ai remarqué ce que je avait manqué à première vue: que même si les données étaient là, c'était tout mutilé. P>

>> I18n.backend
=> #<I18n::Backend::Simple:0x7f74643e2f08 @skip_syntax_deprecation=false, @translations={:"\357\273\277# Sample localization file for English. Add mor
e files in this directory for other locales. # See http://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points.\nen"=>{:Dest
roy=>"Remove", :suspend=>"suspend", :confirm=>"Are you sure?", :Admin=>"Administration", :suspended=>"%{model} was successfully suspended.", :Back=>"B
ack", :updated=>"%{model} was successfully updated.", :html_title=>"DeficitPuzzle", :to_frontpage=>"to frontpage", :approve=>"approve", :Show=>"Show",
 :to_admin=>"to administration", :theme=>{:n=>{:one=>"1 theme", :other=>"%{count} themes"}, :List=>"Listing themes", :New=>"New theme", :Destroy_perma
nently=>"Permanently remove this theme", :Editing=>"Editing theme", :_=>"Theme"}, :Progress=>"Progress", :Proposals=>"Proposals", :approved=>"%{model}
 was successfully approved.", :activerecord=>nil, :save_errors=>{:one=>"1 error prohibited this item from being saved", :other=>"%{count} errors prohi
bited this item from being saved"}, :proposal=>{:n=>{:one=>"1 proposal", :other=>"%{count} proposals"}, :List=>"Listing proposals", :New=>"New proposa
l", :Impact=>"Impact", :Destroy_permanently=>"Permanently remove this proposal.", :Editing=>"Editing proposal", :Approved=>"Approved", :"Approved?"=>"
Approved?", :_=>"Proposal", :Title=>"Title", :Description=>"Description"}, :helpers=>{:submit=>nil}, :created=>"%{model} was successfully created.", :
Edit=>"Edit", :title=>"Deficit puzzle: you fix the budget"}, :pt=>{:Destroy=>"Remover", :suspend=>"suspender", :confirm=>"De certeza?", :Admin=>"Ad
ministração", :suspended=>"%{model} foi suspendida com sucesso.", :Back=>"Atrás", :updated=>"%{model} foi actualizada com sucesso.", :html_title=>"
DeficitPuzzle", :to_frontpage=>"ir para página principal", :approve=>"aprovar", :Show=>"Mostrar", :to_admin=>"ir para administração", :theme=>{:n=>
{:one=>"1 tema", :other=>"%{count} temas"}, :List=>"Listando temas", :New=>"Novo tema", :Destroy_permanently=>"Remover este tema permanentemente.", :E
diting=>"Editando tema", :_=>"Tema"}, :Progress=>"Progressão", :Proposals=>"Propostas", :approved=>"%{model} foi aprovada com sucesso.", :activerecor
d=>{:attributes=>{:theme=>{:title=>"Título"}, :proposal=>{:impact=>"Impacto", :description=>"Descrição", :title=>"Título"}}, :models=>{:theme=>"Te
ma", :proposal=>"Proposta"}}, :save_errors=>{:one=>"1 erro impediu este item de ser salvo", :other=>"%{count} erros impediram este item de ser salvo"}
, :proposal=>{:n=>{:one=>"1 proposta", :other=>"%{count} propostas"}, :List=>"Listando propostas", :New=>"Nova proposta", :Impact=>"Impacto", :Destroy
_permanently=>"Remover permanentemente esta proposta.", :Editing=>"Editando proposta", :Approved=>"Aprovada", :"Approved?"=>"Aprovada?", :_=>"Proposta
", :Title=>"Título", :Description=>"Descrição"}, :helpers=>{:submit=>{:update=>"Actualizar %{model}", :create=>"Criar %{model}"}}, :created=>"%{mod
el} foi criada com sucesso.", :Edit=>"Editar", :title=>"Deficit puzzle: tu consertas o orçamento"}, :en=>{:support=>{:array=>{:words_connector=>", ",
 :two_words_connector=>" and ", :last_word_connector=>", and "}}, :number=>{:precision=>{:format=>{:delimiter=>""}}, :format=>{:separator=>".", :delim
iter=>",", :precision=>3, :significant=>false, :strip_insignificant_zeros=>false}, :human=>{:storage_units=>{:units=>{:byte=>{:one=>"Byte", :other=>"B
ytes"}, :kb=>"KB", :mb=>"MB", :gb=>"GB", :tb=>"TB"}, :format=>"%n %u"}, :format=>{:delimiter=>"", :precision=>3, :significant=>true, :strip_insignific
ant_zeros=>true}, :decimal_units=>{:units=>{:million=>"Million", :unit=>"", :billion=>"Billion", :trillion=>"Trillion", :quadrillion=>"Quadrillion", :
thousand=>"Thousand"}, :format=>"%n %u"}}, :percentage=>{:format=>{:delimiter=>""}}, :currency=>{:format=>{:separator=>".", :unit=>"$", :delimiter=>",
", :precision=>2, :significant=>false, :strip_insignificant_zeros=>false, :format=>"%u%n"}}}, :datetime=>{:distance_in_words=>{:about_x_hours=>{:one=>
"about 1 hour", :other=>"about %{count} hours"}, :about_x_years=>{:one=>"about 1 year", :other=>"about %{count} years"}, :x_days=>{:one=>"1 day", :oth
er=>"%{count} days"}, :over_x_years=>{:one=>"over 1 year", :other=>"over %{count} years"}, :less_than_x_minutes=>{:one=>"less than a minute", :other=>
"less than %{count} minutes"}, :about_x_months=>{:one=>"about 1 month", :other=>"about %{count} months"}, :x_minutes=>{:one=>"1 minute", :other=>"%{co
unt} minutes"}, :almost_x_years=>{:one=>"almost 1 year", :other=>"almost %{count} years"}, :x_months=>{:one=>"1 month", :other=>"%{count} months"}, :l
ess_than_x_seconds=>{:one=>"less than 1 second", :other=>"less than %{count} seconds"}, :half_a_minute=>"half a minute", :x_seconds=>{:one=>"1 second"
, :other=>"%{count} seconds"}}, :prompts=>{:day=>"Day", :minute=>"Minute", :month=>"Month", :year=>"Year", :hour=>"Hour", :second=>"Seconds"}}, :time=
>{:formats=>{:default=>"%a, %d %b %Y %H:%M:%S %z", :short=>"%d %b %H:%M", :long=>"%B %d, %Y %H:%M"}, :pm=>"pm", :am=>"am"}, :date=>{:formats=>{:defaul
t=>"%Y-%m-%d", :short=>"%b %d", :long=>"%B %d, %Y"}, :abbr_day_names=>["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], :order=>[:year, :month, :day]
, :day_names=>["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], :abbr_month_names=>[nil, "Jan", "Feb", "Mar", "Apr", "Ma
y", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], :month_names=>[nil, "January", "February", "March", "April", "May", "June", "July", "August", "S
eptember", "October", "November", "December"]}, :errors=>{:format=>"%{attribute} %{message}", :messages=>{:even=>"must be even", :confirmation=>"doesn
't match confirmation", :greater_than_or_equal_to=>"must be greater than or equal to %{count}", :accepted=>"must be accepted", :equal_to=>"must be equ
al to %{count}", :not_an_integer=>"must be an integer", :empty=>"can't be empty", :wrong_length=>"is the wrong length (should be %{count} characters)"
, :less_than=>"must be less than %{count}", :blank=>"can't be blank", :too_short=>"is too short (minimum is %{count} characters)", :exclusion=>"is res
erved", :inclusion=>"is not included in the list", :less_than_or_equal_to=>"must be less than or equal to %{count}", :not_a_number=>"is not a number",
 :too_long=>"is too long (maximum is %{count} characters)", :invalid=>"is invalid", :odd=>"must be odd", :greater_than=>"must be greater than %{count}
"}}, :activerecord=>{:errors=>{:messages=>{:record_invalid=>"Validation failed: %{errors}", :taken=>"has already been taken"}}}, :helpers=>{:submit=>{
:submit=>"Save %{model}", :update=>"Update %{model}", :create=>"Create %{model}"}, :select=>{:prompt=>"Please select"}}}}, @initialized=true>


0 commentaires

6
votes

Curieusement, les données apparaissaient dans i18n.backend comme prévu, mais n'étaient pas sélectionnées individuellement à l'aide de i18n.t

Ceci a conduit à la réalisation que le chemin de charge doit être configuré correctement pour les rails pour rechercher les fichiers de traduction, mais qu'il ne les a pas fait correctement.

Ce voyant @aneves découvrir qu'un BOM perturbait la capacité de Heroku à analyser les fichiers qui a abouti au correctif d'éliminer le noyau incriminé.

Wikipedia sur bom dans utf-8

La norme Unicode permet à la nomination de l'UTF-8 , mais < un href = "http://fr.wikipedia.org/wiki/byte_order_mark#cite_note-2" rel = "noreferrer"> n'est pas exiger ou recommander son utilisation. Octy order n'a aucune signification dans UTF-8 Donc, dans UTF-8, le candidat ne sert que d'identifier un flux de texte ou Fichier comme UTF-8.

De nombreux programmes Windows (y compris le bloc-notes Windows) ajoutent des boms aux fichiers UTF-8 par défaut.

Si les futurs lecteurs sont sur envisager de lire sur Problèmes de codage communs .


1 commentaires

Et je pense vraiment que c'est une meilleure réponse que la mienne aussi. Marquage aussi comme réponse.



1
votes

Ce problème ne semble pas être spécifique à l'heroku et se produirait sur n'importe quelle fenêtre Windows / Unix Co-mêlant avec Ruby / I18N.


2 commentaires

Très assertif. Est-ce que je suppose correctement que cette réponse est hors de l'expérience personnelle? (Fait la réponse aussi utile. :)


Heroku utilise une construction standard de rubis, ce qui est donc certainement juste une différence Windows / Unix avec la marque BOM. Il ne devrait y avoir rien d'unique à l'environnement Heroku qui serait en jeu ici.



0
votes

écrire cette ligne résoudra également le problème de votre application.rb xxx


2 commentaires

Je pense que vous avez eu un problème différent, car mon problème n'obtiendait pas le fichier mais l'analyse de son contenu: la naissance ruinait le chargement du contenu du fichier.


Ouais Heroku n'a pas lu mon fichier de région alors quand j'ai mis que j'ai travaillé pour moi



2
votes

J'ai rencontré un problème similaire, mais le mien devait avoir des touches en double.

Dans un fichier, nous avons défini ceci: p> xxx pré>

et une autre nous définissons

en:
  dashboard:
    title: "Some Title"


1 commentaires

C'était exactement mon problème. Trouver pour des entrées en double!