{"id":319,"date":"2015-06-21T08:00:12","date_gmt":"2015-06-21T11:00:12","guid":{"rendered":"http:\/\/www.antonioladeia.com\/?p=319"},"modified":"2015-06-21T09:25:58","modified_gmt":"2015-06-21T12:25:58","slug":"traducao-do-gurps-character-sheet","status":"publish","type":"post","link":"https:\/\/www.antonioladeia.com\/blog\/traducao-do-gurps-character-sheet\/","title":{"rendered":"Tradu\u00e7\u00e3o do Gurps Character Sheet"},"content":{"rendered":"<p>A coisa mais bacana de trabalhar com software livre \u00e9 a possibilidade de fazer ele melhor, e adicionar alguma coisa que sinta falta nele. Essa foi a id\u00e9ia de traduzir o GURPS Character Sheet, um software para criar fichas de rpg para o GURPS 4\u00aa edi\u00e7\u00e3o, e ajudar o meu hobby.<\/p>\n<p>O processo de localiza\u00e7\u00e3o de uma aplica\u00e7\u00e3o \u00e9 bem vari\u00e1vel e depende muito de que forma o desenvolvedor planejou isso, a localiza\u00e7\u00e3o do GCS n\u00e3o \u00e9 das mais f\u00e1ceis e n\u00e3o ajuda em nada o trabalho de quem vai localiz\u00e1-lo, por isso <del datetime=\"2015-06-20T23:32:27+00:00\">at\u00e9 hoje n\u00e3o terminei o trabalho<\/del>, criei um tutorial para ensinar quem quiser ajudar nessa tarefa.<\/p>\n<h3>Montagem do ambiente<\/h3>\n<p>A aplica\u00e7\u00e3o conta com 3 m\u00f3dulos que funcionam em conjunto. \u00c9 poss\u00edvel baixar os reposit\u00f3rios de c\u00f3digos do projeto atrav\u00e9s dos comandos:<\/p>\n<pre id=\"codeblock_download_repo\" class=\"codeblock codeblock_shell\"><code data-language=\"shell\">git clone git:\/\/code.trollworks.com\/apple_stubs.git\r\ngit clone git:\/\/code.trollworks.com\/gcs.git\r\ngit clone git:\/\/code.trollworks.com\/toolkit.git<\/code><\/pre>\n<p>Depois de baixados \u00e9 necess\u00e1rio compil\u00e1-los, o que pode ser feito da seguinte forma (o projeto \u00e9 feito em java 1.8 e usa o ant para fazer os builds, ent\u00e3o vc precisa do JRE e do ant):<\/p>\n<pre id=\"codeblock_build_content\" class=\"codeblock codeblock_shell\"><code data-language=\"shell\">cd apple_stubs\r\nant\r\ncd ..\/toolkit\r\nant\r\ncd ..\/gcs\r\nant<\/code><\/pre>\n<p>Para criar o pacote execut\u00e1vel \u00e9 necess\u00e1rio fazer:<\/p>\n<pre id=\"codeblock_generate\" class=\"codeblock codeblock_shell\"><code data-language=\"shell\">cd gcs\r\nant bundle<\/code><\/pre>\n<p>Com isso vc j\u00e1 ter\u00e1 o projeto funcional e pronto para come\u00e7ar a trabalhar.<\/p>\n<h3>Java 1.8<\/h3>\n<p>Um dos problema iniciais \u00e9 a depend\u00eancia do java 8, a depender da distribui\u00e7\u00e3o que voc\u00ea use pode ser que n\u00e3o tenha ainda um pacote nos reposit\u00f3rios.<br \/>\nEu prefiro usar o open jdk 8, pelo fato dele ser livre, mas acabei mudando de distro h\u00e1 pouco (troquei o Debian pelo openSUSE Tumbleweed), e n\u00e3o tive tempo de testar a instala\u00e7\u00e3o, assim que finalizar isso, atualizo o post.<\/p>\n<h3>Localiza\u00e7\u00e3o<\/h3>\n<p>A localiza\u00e7\u00e3o desta aplica\u00e7\u00e3o \u00e9 especialmente ruim para os localizadores, ele usa o recurso de anota\u00e7\u00f5es em c\u00f3digo do java, e para isso quem localiza, precisa abrir classe por classe do projeto procurando quais chaves traduzir.<br \/>\nComo em toda aplica\u00e7\u00e3o, localizar \u00e9 mais do que traduzir, uma boa pr\u00e1tica \u00e9 adotar uma mem\u00f3ria de tradu\u00e7\u00e3o para manter a consist\u00eancia dos termos.<\/p>\n<p>Para localizar uma chave, \u00e9 necess\u00e1rio fazer como o exemplo:<br \/>\nAbra o arquivo gcs\/src\/com\/trollworks\/gcs\/app\/AboutPanel.java, nas linhas 23 e 24 o c\u00f3digo exibido ser\u00e1 assim:<\/p>\n<pre id=\"codeblock_locale_1\" class=\"codeblock codeblock_shell\"><code data-language=\"shell\">@Localize(&quot;Version %s&quot;)\r\nprivate static String VERSION_FORMAT;<\/code><\/pre>\n<p>Ent\u00e3o \u00e9 necess\u00e1rio adicionar mais uma linha com a localiza\u00e7\u00e3o para o portugu\u00eas, depois de modificado dever\u00e1 ficar assim:<\/p>\n<pre id=\"codeblock_locale_2\" class=\"codeblock codeblock_shell\"><code data-language=\"shell\">@Localize(&quot;Version %s&quot;)\r\n@Localize(locale = &quot;pt-BR&quot;, value = &quot;Vers&atilde;o %s&quot;)\r\nprivate static String VERSION_FORMAT;<\/code><\/pre>\n<p>Esse trabalho dever\u00e1 ser repetido para todas as chaves em todos os arquivos (haja trabalho&#8230;).<\/p>\n<p>Para <del datetime=\"2015-06-21T00:26:17+00:00\">diminuir esse sofrimento<\/del> ajudar nessa tarefa algumas pessoas da comunidade de tradu\u00e7\u00e3o criaram alguns scripts para ajudar nessa tarefa.<\/p>\n<h3>Links \u00fateis<\/h3>\n<p>Site do projeto &#8211; <a href=\"http:\/\/gurpscharactersheet.com\/\" target=\"_blank\">http:\/\/gurpscharactersheet.com\/<\/a><br \/>\nLista de discuss\u00e3o de desenvolvimento &#8211; <a href=\"https:\/\/lists.sourceforge.net\/lists\/listinfo\/gcs-java-devel\" target=\"_blank\">https:\/\/lists.sourceforge.net\/lists\/listinfo\/gcs-java-devel<\/a><br \/>\nOpen JDK 8 &#8211;<a href=\"http:\/\/openjdk.java.net\/projects\/jdk8\/\" target=\"_blank\"> http:\/\/openjdk.java.net\/projects\/jdk8\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>A coisa mais bacana de trabalhar com software livre \u00e9 a possibilidade de fazer ele melhor, e adicionar alguma coisa que sinta falta nele. Essa foi a id\u00e9ia de traduzir o GURPS Character Sheet, um software para criar fichas de rpg para o GURPS 4\u00aa edi\u00e7\u00e3o, e ajudar o meu hobby. O processo de localiza\u00e7\u00e3o&nbsp;&hellip;<\/p>\n","protected":false},"author":1,"featured_media":398,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[112],"tags":[222,224,221,184,113,183,223,147],"class_list":["post-319","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-localizacao","tag-character","tag-ficha","tag-gcs","tag-gurps","tag-localizacao-2","tag-rpg","tag-sheet","tag-traducao"],"_links":{"self":[{"href":"https:\/\/www.antonioladeia.com\/blog\/wp-json\/wp\/v2\/posts\/319","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.antonioladeia.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.antonioladeia.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.antonioladeia.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.antonioladeia.com\/blog\/wp-json\/wp\/v2\/comments?post=319"}],"version-history":[{"count":11,"href":"https:\/\/www.antonioladeia.com\/blog\/wp-json\/wp\/v2\/posts\/319\/revisions"}],"predecessor-version":[{"id":417,"href":"https:\/\/www.antonioladeia.com\/blog\/wp-json\/wp\/v2\/posts\/319\/revisions\/417"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.antonioladeia.com\/blog\/wp-json\/wp\/v2\/media\/398"}],"wp:attachment":[{"href":"https:\/\/www.antonioladeia.com\/blog\/wp-json\/wp\/v2\/media?parent=319"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.antonioladeia.com\/blog\/wp-json\/wp\/v2\/categories?post=319"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.antonioladeia.com\/blog\/wp-json\/wp\/v2\/tags?post=319"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}