Giter Site home page Giter Site logo

tennera's Introduction

IMPORTANT: Zanata's source code has moved.

To get the latest code, please visit the new repository: https://github.com/zanata/zanata-platform

Please do not fork or clone Zanata from this repository. This repository is kept for reference only.

Please submit pull requests to the zanata-platform repository.

Find out about Zanata here: http://zanata.org/


Zanata

Zanata is a web-based system for translators to translate documentation and software online using a web-browser. It is written in Java and uses modern web technologies like JBoss, Seam, GWT, Hibernate, and a REST API. It currently supports translation of DocBook/Publican documentation through PO files. Projects can be uploaded to and downloaded from a Zanata server using a Maven plugin or a Python client.

For developers and writers: By using Zanata for your document translations, you can open up your project for translations without opening your entire project in version control.

For translators: No need to deal with PO files, gettext or a version control system - just log in to the website, join a language team and start translating, with translation memory (history of similar translations) and the ability to see updates from other translators in seconds.

Zanata is Free software, licensed under the LGPL.

Developers

Prerequisites

You will need:

  • Java SDK 8 (OpenJDK recommended)
  • npm
  • Mysql or MariaDB
  • JBoss EAP 7 or WildFly 10

Building

Quickly build a .war file

etc/scripts/quickbuild.sh - Builds the project as quickly as possible, targeting both Firefox and Chrome when building GWT components, and skipping all checks and verifications (i.e. tests, checkstyle, etc)

If you wish to build GWT components for chrome or firefox only, you can specify the -c and -f arguments respectively.

The -h argument prints the script's help.

Build and run a server for testing

etc/scripts/cargowait.sh - Builds the Zanata artifact and starts a JBoss server using the cargo plugin. This script is particularly useful for starting a Zanata instance with the aim of running functional tests from an IDE.

The -h argument prints the script's help.

Development using docker (experimental)

For a quick Zanata development environment with Docker, please visit the docker README.

tennera's People

Contributors

asgeirf avatar definite avatar jamesni avatar jhorstmann avatar seanf avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

tennera's Issues

Does not treat tabs as white space

When a tab is entered on a blank line between messages, jgettext generates this message:

Exception in thread "main" org.fedorahosted.tennera.jgettext.catalog.parse.UnexpectedTokenException: unrecognized entry directive [ ] [line=28]
    at org.fedorahosted.tennera.jgettext.catalog.parse.CatalogLexer$Tokenizer.processEntry(CatalogLexer.java:352)
    at org.fedorahosted.tennera.jgettext.catalog.parse.CatalogLexer$Tokenizer.processLine(CatalogLexer.java:234)
    at org.fedorahosted.tennera.jgettext.catalog.parse.CatalogLexer$Tokenizer.readToken(CatalogLexer.java:156)
    at org.fedorahosted.tennera.jgettext.catalog.parse.CatalogLexer$Tokenizer.hasNext(CatalogLexer.java:140)
    at org.fedorahosted.tennera.jgettext.catalog.parse.CatalogLexer.nextToken(CatalogLexer.java:73)
    at antlr.TokenBuffer.fill(TokenBuffer.java:69)
    at antlr.TokenBuffer.LA(TokenBuffer.java:80)
    at antlr.LLkParser.LA(LLkParser.java:52)
    at org.fedorahosted.tennera.jgettext.catalog.parse.CatalogParser.entries(CatalogParser.java:609)
    at org.fedorahosted.tennera.jgettext.catalog.parse.CatalogParser.messageBlock(CatalogParser.java:442)
    at org.fedorahosted.tennera.jgettext.catalog.parse.CatalogParser.messageBlocks(CatalogParser.java:220)
    at org.fedorahosted.tennera.jgettext.catalog.parse.CatalogParser.catalog(CatalogParser.java:157)

The parse will accept spaces but not tabs. Most po file utilities accept both
i.e. the Tab (\t in the following) generates the error:

msgstr ""
\t
#

Sample File:

msgid ""
msgstr ""
"Project-Id-Version: RecordEditor 0.90\n"
"Last-Translator: bm\n"
"Language-Team: none\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"
"Content-Transfer-Encoding: 8bit\n"


# Use: Message
#  id: SqlError   Panel:
#
# English:
#     SQL: {0}
# Message: {1}
#
msgid "SqlError"
msgstr ""

# Use: Message
#  id:    Panel:
#
msgid " --> Adding Record Layout: {0}"
msgstr "  - >添加记录布局:{0}"

# Use: Message
#  id:    Panel:
#
msgid " --> Deleting Record Layout: {0}"
msgstr "  - >删除记录的布局:{0}"

# Use: Column_Heading
#  id:    Panel:
# Tbl- PropsEd_JDBC 4
msgid " User"
msgstr " 用户"

# Use: Message
#  id: CopybookLoaded   Panel:
#
# English: -->> {0} processed
#
#       Copybook: {1}
msgid "CopybookLoaded"
msgstr ""

parser currently ignores the charset (UTF-8) in the File Description String

In jgettext, when UTF-8 is specified in the PO string it looks to be ignored and the "Strings" are all screwed up i.e.

msgid ""
msgstr ""
"Project-Id-Version: RecordEditor 0.90\n"
"Last-Translator: bm\n"
"Language-Team: none\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"
"Content-Transfer-Encoding: 8bit\n"

One solution is to to write a quick and dirty parser for the File-Descriptor message and then re-open the file with the correct font.

I will be writing my own quick and dirty parser to extract the font which I can supply if wanted ???

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.