Datejs (pt-PT)

(Datejs Test Cases – pt-PT localized version)

Trabalhar com datas é quase sempre um pesadelo, cumprimentos das diferentes regras que (quase) cada país definiu. Quando somamos a isso o facto de ter o sistema operativo numa língua, as definições regionais noutra e o browser numa terceira lingua é fácil perceber que alguma coisa vai correr mal.

Claro que por esta altura já muita gente pensou neste problema e o resolveu numa qualquer linguagem de programação à nossa escolha mas mesmo assim ainda continua a não ser muito fácil encontrar soluções que funcionem a 100% em português de portugal (pt-PT)

Felizmente o projecto Datejs é bastante extensível e permite utilizar configurações diferentes por linguagem.
Mas embora já tivesse um versão base pt-PT ainda faltava fazer algumas alterações para ficar (quase) perfeito.
Assim fiz as seguintes alterações:
globalization\pt-PT.js

  • retirar caracteres especiais ç e á já que me pareceu que não funcionavam
  • traduzir alguns regexPatterns: future, past, add, subtract, yesterday, today, tomorrow, now, millisecond, second, minute, hour, week, month, day, year
  • mudar alguns regexPatterns: sun, mon, tue, wed, thu, fri, sat

parser.js, line 748
embora o datejs seja bastante configurável, os valores usados como generalDelimiter estão fixos no código. tive por isso que acrescentar ‘as’ e ‘na’ de forma a ser possivel datas como “segunda as 8”

//ADDED  => added new localized delimiters pt-PT'as', 'na'
g.generalDelimiter = _.rtoken(/^(([\s\,]|at|@|on|as|na)+)/);

core.js, line 86

//ADDED  => http://groups.google.com/group/datejs/browse_thread/thread/3dcae8a6e480dab9 - Parser issue when using certain culture infos
switch(name)
{
case "sun": name=$C.shortestDayNames[0]; break;
case "mon": name=$C.shortestDayNames[1]; break;
case "tue": name=$C.shortestDayNames[2]; break;
case "wed": name=$C.shortestDayNames[3]; break;
case "thu": name=$C.shortestDayNames[4]; break;
case "fri": name=$C.shortestDayNames[5]; break;
case "sat": name=$C.shortestDayNames[6]; break;
}

já enviei as alterações que fiz para o responsável do projecto de forma a, se concordar com as alterações, as incluir numa próxima versão… foi assim a modos que a minha prenda de natal.

por Vitor Silva



Leave a Reply