Eu entraria no contêiner, instalaria o vim e repararia o locale.
Você poderia salvar o locale hebraico quebrado e copiar o inglês por cima dele…
root@carrie-app:/var/www# for i in `find . -name *.he.yml` ; do cp ${i/he.yml/en.yml} $i ; done
Ideia legal, mas não funcionou na prática. quando troquei minha localidade para HE novamente, recebo o erro. Acho que voltarei a iterar sobre os usuários para defini-los todos para inglês por enquanto.
Você reiniciou o discourse após modificar os locais?
sim. não fiz muito.

depois de mostrar minhas antigas habilidades em Ruby, apenas mudei todos para o inglês por enquanto. Abrirei um ticket sobre a localidade hebraica em seguida.
obrigado @JammyDodger pela movimentação para Bug, é só isso que é preciso para abrir um relatório de bug, ou devo abrir um oficial em algum rastreador de bugs?
Se uma localidade en for copiada, ocorre um erro durante a mesclagem (parece que as entradas não traduzidas são removidas e, se nada sobrar, ocorre um erro).
No entanto, remover config/locales/client.he.yml permite o login no meu site de teste.
Porque ele volta inteiramente para EN. Acho que esse é o comportamento esperado.
No locale hebraico config/locales/client.he.yml
posts_likes_MF: |
{ count, plural,
one {תגובה, }
two {שתי תגובות, }
many {# תגובות, }
other {# תגובות, }
}{ ratio, select,
low { יחס גבוה בין פוסטים ללייקים, }
med { יחס גבוה מאוד בין פוסטים ללייקים, }
high { יחס גבוה במיוחד בין פוסטים ללייקים, }
other {}
} קפיצה לפוסט הראשון או האחרון…
a linha
many {# תגובות, }
tem que ser deletada.
many não é permitido em hebraico (veja Language Plural Rules)
O problema pode ser resolvido através da interface do usuário. Para isso, o valor corrigido deve ser inserido em /admin/customize/site_texts/js.posts_likes_MF para o idioma hebraico:
{ count, plural,
one {תגובה, }
two {שתי תגובות, }
other {# תגובות, }
}{ ratio, select,
low { יחס גבוה בין פוסטים ללייקים, }
med { יחס גבוה מאוד בין פוסטים ללייקים, }
high { יחס גבוה במיוחד בין פוסטים ללייקים, }
other {}
} קפיצה לפוסט הראשון או האחרון…
Parece um pouco estranho que o site inteiro possa ficar inutilizável ao inserir dados incorretos em uma personalização de texto.
Registrá-lo aqui é o lugar para relatórios de bugs. ![]()
Vou usar o git para ver quem é o culpado por essa linha. Pensei que a única parte permitida a fazer commit de alterações nisso era o crowdin? Além disso, se for esse o caso, por que reiniciar o unicorn depois de copiar o inglês sobre o hebraico não resolveria isso?
Realmente deveria haver uma distinção entre não permitido e não suportado.
Estranhamente, no código do Discourse, nem mesmo o “plural two” é suportado para nenhum dos códigos de idioma, o que É compartilhado com o árabe. Acho que é aqui que o problema precisa ser corrigido. Farei um PR para isso, mas definitivamente há uma necessidade de corrigir a falha rígida no campo many “superfluo”, pois parece que o Crowdin não está em conformidade com este arquivo plurals.rb.
Eu acho que é mais complicado.
As traduções do front-end são interpretadas pelo módulo do nó @messageformat/core usando messageformat-wrapper.
O problema é que as regras de plural são definidas em dois lugares. O outro foi recentemente alterado para usar uma biblioteca (DEV: Upgrade the MessageFormat library (JS) · discourse/discourse@301713e · GitHub).
No entanto, os plurais definidos na biblioteca nem sempre são os mesmos que o Discourse usava antes, e os em plurals.rb não foram alterados. Inconsistency in plural definition
Mas isso não explica por que o Crowdin criou uma versão separada para muitos.
Adicionei as regras de campo necessárias para a tradução, mas isso não é uma solução para este bug, apenas uma compatibilidade para a saída do Crowdin.
Acho que a regra no final da linha também precisa de um ajuste.
No momento, isso ainda menciona apenas “one” e “other”.
rule: lambda { |n| n == 1 ? :one : :other }
Sim, eu errei. Eu corrigi com amend e perdi o fato de que fiz o push sem --force. Está corrigido agora.
Obrigado a todos, vamos continuar acompanhando o problema mais amplo neste tópico: