Luis_M Posted May 30, 2009 at 05:16 PM Report #268603 Posted May 30, 2009 at 05:16 PM Estou alterando uma app para poder ser en PT, espanhol, inglês, etc. Para isso a app lê, ou carrega vários um determinado ficheiro *.lng com as mensagens, captions etc. Esse ficheiro pode ser alterado pelo user, assim poderá criar 1 ficheiro para o seu idioma. O problema é que a app em PT, além das mensagens de aviso terem variáveis, já resolvido, por vezes deverão conter mais de 1 linha, no código original uso o #10#13 para criar nova linha seguido do resto da mensagem a apresentar. Linhas do Ficheiro en.lng: 1=Its Ok 2= Cancel 3=Alarm for %s at %s hours 4=English msg #10#13 So what ?... function Getlabel(const Nr: string): string; var Sl: TStringList; begin Sl:= TStringList.Create(); Sl.LoadFromFile(ExtractFilePath(ParamStr(0))+'en.lng'); try Result:= Sl.Values[Nr]; finally FreeAndNil(Sl); end; end; // Para o exemplo, criei um button para mostrar a mensagem procedure TForm1.Button6Click(Sender: TObject); begin if MessageBox(Handle, PChar(GetLabel('4')), PChar('Information'), $00000134) = IDYES then begin //qualquer código .... end ; end; Resultado pretendido ( com 2 linhas): English msg so what ?... Mas aparece ( 1 unica linha ): English msg #10#13 so what ?... Haverá alguma solução, para além de no ficheiro en.lng obrigar a existir duas linhas para a mesma mensagem , exemplo : 4=English msg 5=So what ?... E obtia o resultado através de : if MessageBox(Handle, PChar(GetLabel('4'))+#10#13+ GetLabel('5')),PChar('Information'), $00000134) = IDYES then .... Isto, queria eu evitar... para não confundir o user ao criar o seu idioma... Tnx .
Luis_M Posted May 30, 2009 at 05:38 PM Author Report #268614 Posted May 30, 2009 at 05:38 PM Solucionado 😄 ( noutro forum ...) Trate a string antes de exibí-la, usando ReplaceStr. Tipo:Código: if pos( '#10#13' , Frase ) > 0 then //se encontrou a quebra de linha, altere-a Frase = AnsiReplaceStr(Frase,'#10#13',#10#13); Dessa forma, você pode definir até outros caracteres, ou sequencias especiais na tradução.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now