GithubHelp home page GithubHelp logo

translate-project's Introduction

Translate Toolkit

Join the chat at https://gitter.im/translate/pootle Build Status Test Coverage Requirements Released version Supported Python versions License

The Translate Toolkit is a set of software and documentation designed to help make the lives of localizers both more productive and less frustrating. The Toolkit is part of the Translate project, hosted at <https://github.com/translate>.

The software includes programs to convert localization formats to the common PO, and emerging XLIFF format. There are also programs to check and manage PO and XLIFF files. Online documentation includes guides on using the tools, running a localization project and how to localize various projects from OpenOffice.org to Mozilla.

At its core the software contains a set of classes for handling various localization storage formats: DTD, properties, OpenOffice.org GSI/SDF, CSV, MO, Qt .ts, TMX, TBX, WordFast txt, Gettext .mo, Windows RC, and of course PO and XLIFF. It also provides scripts to convert between these formats.

Also part of the Toolkit are Python programs to create word counts, merge translations and perform various checks on translation files.

Important Links

Joining the Translate Project

If you would like to join the translate project mailing list then visit: <http://lists.sourceforge.net/lists/listinfo/translate-devel>.

The vision of the Translate Project is to be a meta project for localizers built on the premise that your language deserves to be a project on its own right not a poor cousin of the main project.

Most projects are inattentive to the needs and difficulties experienced by localizers. To that end the aim is to work towards creating tools and documentation that allows localizers to focus on what they do best: translating software.

Requirements

There are several extra requirements which you might to install to get full feature set. This cal be easily specified during pip installation:

# Install with XML support
pip install translate-toolkit[XML]

# Install all optional dependencies
pip install translate-toolkit[all]

Note

Please check requirements/*.txt:

pip install -r requirements/optional.txt

Will install all optional dependencies convering support for many other formats.

The Toolkit requires Python 3.8 or newer.

The package lxml is required. You should install version 4.6.3 or later. <http://lxml.de/> Depending on your platform, the easiest way to install might be through your system's package management. Alternatively you can try

pip install lxml

which should install the newest version from the web.

For Mac OSX, the following pages might be of help: <http://lxml.de/build.html#building-lxml-on-macos-x> <http://lxml.de/installation.html#macos-x>

The package lxml has dependencies on libxml2 and libxslt. Please check the lxml site for the recommended versions of these libraries if you need to install them separately at all. Most packaged versions of lxml will already contain these dependencies.

When the environment variable USECPO is set to 1, the toolkit will attempt to use libgettextpo from the gettext-tools package (it might have a slightly different name on your distribution). This can greatly speed up access to PO files, but has not yet been tested as extensively. Feedback is most welcome.

The package iniparse is necessary for ini2po and po2ini: <https://pypi.org/project/iniparse/>

The python-Levenshtein package will improve performance for fuzzy matching if it is available. This can improve the performance of pot2po, for example. It is optional and no functionality is lost if it is not installed, only speed. <http://sourceforge.net/projects/translate/files/python-Levenshtein/>

Functions in the lang.data module can supply functions to translate language names using the pycountry package. It can even translate names in the format Language (Country) such as English (South Africa) This is used by Pootle and Virtaal. If the package is not installed, the language names will simply appear in English. It is therefore recommended you install the pycountry package.

The package vobject is needed for ical2po and po2ical.

The aeidon package is needed for sub2po and po2sub. Some Unicode encoded files (including most files from <http://dotsub.com/>) require version 0.14 or later.

Trados TXT TM support requires the BeautifulSoup parser <http://www.crummy.com/software/BeautifulSoup/>

Markdown support requires the mistletoe parser <https://github.com/miyuchina/mistletoe>

Program overview

Use --help to find the syntax and options for all programs.

  • Converters:

    oo2po    - convert between OpenOffice.org GSI files and PO
    oo2xliff - convert between OpenOffice.org GSI files and XLIFF
    moz2po   - convert between Mozilla files and PO
    csv2po   - convert PO format to CSV for editing in a spreadsheet program
    php2po   - PHP localisable string arrays converter.
    ts2po    - convert Qt Linguist (.ts) files to PO
    txt2po   - convert simple text files to PO
    html2po  - convert HTML to PO (beta)
    md2po    - convert Markdown to PO
    xliff2po - XLIFF (XML Localisation Interchange File Format) converter
    prop2po  - convert Java .properties files to PO
    po2wordfast - Wordfast Translation Memory converter
    po2tmx   - TMX (Translation Memory Exchange) converter
    pot2po   - PO file initialiser
    csv2tbx  - Create TBX (TermBase eXchange) files from Comma Separated
               Value (CSV) files
    ini2po   - convert .ini files to to PO
    ical2po  - Convert iCalendar files (*.ics) to PO
    sub2po   - Convert many subtitle files to PO
    resx2po  - convert .Net Resource (.resx) files to PO
    
  • Tools (Quality Assurance):

    pofilter - run any of the 40+ checks on your PO files
    pomerge  - merge corrected translations from pofilter back into
               your existing PO files.
    poconflicts - identify conflicting use of terms
    porestructure - restructures po files according to poconflict directives
    pogrep   - find words in PO files
    
  • Tools (Other):

    pocompile - create a Gettext MO files from PO or XLIFF files
    pocount   - count translatable file formats (PO, XLIFF)
    podebug   - Create comment in your PO files' msgstr which can
                then be used to quickly track down mistranslations
                as the comments appear in the application.
    posegment - Break a PO or XLIFF files into sentence segments,
                useful for creating a segmented translation memory.
    poswap    - uses a translation of another language that you
                would rather use than English as source language
    poterminology - analyse PO or POT files to build a list of
                    frequently occurring words and phrases
    

translate-project's People

Contributors

dwaynebailey avatar julen avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

translate-project's Issues

Set up Kurdish Xfce 4.2

Erdal Ronahi said:
can you please set up XFCE 4.2 for a Kurdish translation and enable
uploads for me?

"TypeError: int argument required" after pressing the submit button

Originally posted by Virtual Flavius:

I followed a link from http://pootle.wordforge.org/he/pootle/ to
http://pootle.wordforge.org/he/pootle/jToolkit.po?translate=1&fuzzy=1&blank=1
using “quick translate”.

I insert a text in Hebrew into the textbox and press the “submit” button and I
get “TypeError: int argument required”

I guess it might be important to point out that when I hit the “Back” button in
my browser, the string is available in the textbox and I can use the “skip”
button in Pootle to go to the next string. After I completer the entire
translation it seems like non of it has been saved on the server.

Kind regards,
Virtual Flavius

Swahili terminology doesn't show up in Pootle

When translating Wordpress into Swahili, no terminology matches are served, even though the Swahili Terminology project is 99% translated. Terminology matching for other languages work as normal.

Galacian language addition request

Originally posted by David Gonzalez:

Hi, I would like Galician to be added and I’d like to translate Firefox,
Thunderbird and OpenOffice at least

Upload Mambo template files

The mambo POT files need to be uploaded as soon as pootle.wf.org starts playing
nice again.

The POT file is attached. It probably needs a nice header. It is generated buy
the script run at:
http://gross.nmmu.ac.za/temp/pogen.php

You’ll need a login and password which are not provided. Script written by:
Charl van Niekerk [email protected] ask him for the script and info.

Enable OOo for Moore and Bambara

Both languages are listed. Moore as Mossi (mos).

Waiting for David to confirm what OOo we have on the site and for feedback on
the language name for mos.

Will enable both when both questions are clear

Virtaal template refresh / add langs

Originally posted by Chris Leonard:

The Virtaal project needs an overall "Update from templates". Total words varies from 1429 to 1659. The project exists for only 54 langs, as one of your core offerings, it should be available for all langs you support (more or less by default).

Migrate Bugzilla to bugs.locamotion.org

(not really related to product pootle.locamotion.org)

Bugzilla needs to be migrated to the new server, and made available at bugs.locamotion.org. We also need to ensure that we can do all sorts of non-latin1 things like saying “Ṅwana wa vhuṋa u bva ḽiṱaḓulu” (as I always like to say). Email must work, and it will be a new version of bugzilla, etc.

Request for Armenian language support

Originally posted by Suren Karapetyan:

I’ve just registered with pootle and want to do the Armenian translations.
Could you please add them. The language code is hy_AM. If you need more info
contact me.
Thanks

Unable to upload and overwrite/merge files

I am unable to upload files to http://pootle.locamotion.org/nn/wordpress/, regardless of whether I’m logged in as leuce (admin) or as a user with full admin rights to the Norwegian WordPress project. I can use neither merge nor overwrite. The same happens whether I try to upload one PO file or a ZIP file. The server does not give an error message response… it simply reloads the page (like it would normally do when you upload something), but the statistics don’t reflect the upload.

Can't upload any file

Upon uploading any file I get:

Server Error

An error has occurred. Thank you for your patience.

<django.utils.functional.proxy object at 0xac14a6c>

Registration returns an encoding error preventing new users from registering

Hi,

Registration of new user accounts doesn't appear to be possible at the moment, any attempt just returns:

'ascii' codec can't decode byte 0xc3 in position 4: ordinal not in range(128)

All data entered was standard ascii characters and can be reproduced with the following values:

Username: test
Password: test
Confirm Password: test
Full Name: Test
E-Mail: [email protected]

Thanks,
Mike.

Query about Macedonian plural equation

Originally posted by Chris Leonard:

Macedonian (mk)

This page
http://translate.sourceforge.net/wiki/l10n/pluralforms#m
says

nplurals=2
plural= n==1 || n%10==1 ? 0 : 1

but this bug
https://bugzilla.gnome.org/show_bug.cgi?id=601623
says

nplurals = 2
plural = n % 100 == 11 ? 1 : n % 10 == 1 ? 0 : 1

and this bug
https://bugzilla.mozilla.org/show_bug.cgi?id=467547
isn't sure

Do you have any contacts that could shed light on this. I'd like to get my Pootle lang-mk plurals set properly and I'm sure you'd like the correct info on the pluralforms web-page as well.

bug queries results shown as plain text

Content from bugs.wordforge.org searches (like in the URL) shows as a plain text when working
from behind the squid proxy.

Decoded tcp dump of the exchange is attached.

euc-kr (Korean) encoding is not supported

The Korean page on pootle.wordforge.org/ko/ gives this error:
LookupError: unknown encoding: euc-kr

The error occurs because the server is running Python 2.3, and support for this
encoding was only added in Python 2.4.
See http://cjkpython.i18n.org/ for support for Python 2.3

Backup Mozilla translations

With the Mozilla translations now on a separate server, we need to ensure we have backups of the database, like we do with our main pootle server. We have Linode backups, but extra backups might help, even with testing.

Implement coverage report for Sphinx docs

We build docs by using the 'sphinx-build -b coverage' option, which creates a coverage report in '_build/python.txt'.

We should use that data to display information about documentation coverage in Jenkins.

Add GNOME glossary

Add the GNOME glossary as a project for translation

http://developer.gnome.org/projects/gtp/glossary/

Unable to upload zip files to Pootle

I can upload PO files to Pootle (with merge and/or overwrite) one by one, but if I zip it, Pootle does nothing. It doesn’t give an error message, and it reloads the page as if there had been a change, but the new files are not there.

Update toolkit installation for mozilla.locamotion.org

We added {{xxx}} style variables to Translate Toolkit on trunk. This is needed for the latest Mozilla Firefox translations, Wolof is already mistranslating these.

So please update toolkit. I'm not sure what the consequences are in terms of database migration and updates.

Upload Serbian translations of Pootle

Depends on:
- [x] translate/pootle#19 Upload of Serbian pootle.po file fails

The jToolkit.po file uploaded correctly and is attached for information only.
The pootle.po file upload failed to upload. A seperate buf report has been
created with that error.

Implement scrumbugs

Depends on:

Implement scrumbugs for our SCRUM process.

This is for the basic implementation for our Iteration 4. Any new stories to add features should be reported in their own bug.

Upgrade mozilla.locamotion.org to latest master

We dropped in a lot of changes: history, discussion to master. Our best users in terms of stability and bugs at the moment are the Firefox localisers so best that they have the latest version.

So please:
a) upgrade to master.
b) call for people to report bugs and issues again.

Install Pootle 2.2 for Firefox localisers

Users that are translating Firefox really need to get some of the benefits of Pootle 2.2. TM, Nicer interface.

Developers need a safe but user facing environment to get feedback before we send this to the world.

Needs:

  • Setup of mozilla.locamotion.org domain
  • Setup Pootle at the site
  • Migrate all existing data from pootle.locamotion.org
  • Delete all project except 'firefox' and 'mozilla_lang'

The risk of data loss is low as all the PO files are regularly committed to version control. Any new users added can easily be recreated as the audience is small, about 30 max. People who join are invited.

Allow inline attachment viewing

In Adminisration->Preference->Attachements you can setup the needed configuration.

I setup bug-attachement.locamtion.org as the alternative url for attachements. This is a CNAME for bugs.locamotion.org

I assume this needs some setup on extremadura server so that it actually resolves.

Write fabfile for Pootle

Depends on:

Fabric is a library and command-line tool for easing the task of deploying servers using SSH.

We should create a fabfile to be able to reuse deployment techniques and not be repeating the same task every time we want to deploy something somewhere.

Setup testing server

Depends on:

We need to setup our testing server to test the latest features and show them to a broader audience.

For this we will need a script that pulls the latest changes from github and copies a database dump from the production environment. This should be done as a cron job.

Need Latvian language

Originally posted by Gints Polis:

Would you please be so kind and add Latvian language to poodle supported languages.

Can't view the fuzzies

Pootle tells me there are a number of fuzzy strings, but I can’t view any of them. Pootle never gives me the option to view them. I tried with my user “leuce”, which is an admin user, as well as with a test user. Any idea?

Test bug for bugzilla - ignore

This is a bug to test some ńóń-áśćíí text, both in bugzilla and in bugmail.

That was just latin1, I think ^^, so let's do a bit more:

Try a simple string like نَ, (from bug translate/virtaal#986)

Virtaal is written as "Фиртаал" in Russian.

Julen, please confirm that your bugmail is correctly encoded (and in English), etc. then I believe this is finished, and a success!

Migrate from SVN to Git

Depends on:

(Selected 'Pootle' as a component because didn't have a better choice)

We want to migrate our current SVN infrastructure to Git for all the products: Translate Toolkit, Pootle, Virtaal, Amagama and any other project that's hosted in SVN.

This is a bug to track everything related to that move.

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.