O arquivo de linguagem do Moregroupware consiste de 2 partes, a chave (key) e o texto (text). As partes são separadas por um sinal de igual(=). Abaixo está um exemplo simples de um arquivo de linguagem inglês e alemão:
Arquivo de linguagem em inglês do módulo calendário (calendar.en.lang)
collisionwith = collision with date = Date dateconflict = dateconflict desc = Description dobook = book
Arquivo de linguagem em alemão do módulo calendário (calendar.de.lang)
collisionwith = kollidiert mit date = Datum dateconflict = Terminkonflikt desc = Beschreibung description = Beschreibung dobook = buchen
Como você pode ver, apenas o lado à direita do sinal "=" será modificado. Logo, se você quiser criar um novo arquivo de linguagem para um módulo ou para todos os módulos, você deve copiar um arquivo de linguagem existente que você compreenda ( eu assumo que seja inglês) para um novo arquivo chamado calendar.it.lang, se for traduzir para o italiano ou para calendar.tu.lang se for traduzir para o russo. Aí, modifique o arquivo e edite o texto do lado direito do sinal "=" em cada linha.
Como você pode ver, isto não é muito confortável para textos longos, porque você pode ter que deslocar (scroll) para a direita se tiver duas ou mais senteças. Devido a isto, você pode inserir uma nova linha e continuar seu texto na próxima linha, a seguinte exemplo demonstra isto:
collisionwith = colisão com outro agendamento, e isto não é tudo. Também houve uma colisão com meu carro na manhã de ontem, porém isto só é importante citar porque eu quero inserir um texto realmente longo para a palavra-chave collisionwith date = Date
Você pode notar que a chave "collisionwith" tem um texto muito longo e de fato não importa, moregroupware irá tratar esta situação sem quaisquer problemas.
O framework do moregroupware é capaz de ter variáveis dentro do texto. Isto é muito importante, porque quando o moregroupware quer mostrar algo como: "Usuário Thomas Smith encontrou 10 Contatos de 122", o texto consiste de texto normal que deve ser traduzido e de partes com variáveis como nome do usuário (Thomas Smith) e registros encontrados ( 10 e 122). Para manusear isto, o arquivo de linguagem pode parecer com o seguinte exemplo:
myheader = Usuário <$1> encontrou <$2> Contatos de <$3>
ou na versão em alemão:
myheader = Benutzer <$1> hat <$2> Kontakte von <$3> gefunden
Aqui você pode ver que moregroupware não tem nenhum problema com diferentes estruturas de sentenças, porque você pode colocar as variáveis aonde quiser.