Git Product home page Git Product logo

Comments (6)

iafan avatar iafan commented on September 13, 2024

First of all, you don't need .pot files for that, Serge syncs .po files with Pootle.

Pootle expects a certain folder structure in order to work properly. Here's an example:

/pootle_root_po_dir
    /project1
        /de
            /resources.json.po
        /ja
            /resources.json.po
        /pt_BR
            /resources.json.po
        ...
    /project2
        /de
            /resources.xml.po
        /ja
            /resources.xml.po
        /pt_BR
            /resources.xml.po
        ...
   ...

and in your Pootle configuration file you need to set the path to /pootle_root_po_dir.

Next, in your Serge config for your "Project 1" you need to specify:

ts_file_path                /pootle_root_po_dir/project1/%LOCALE%/%FILE%.po

so that Serge generates .po files the way Pootle expects them.

On Pootle side, you need to go to your Admin panel => Projects and create a new project with id project1 (this is how Pootle will know that it needs to look inside /pootle_root_po_dir/project1 folder).

When this is configured, Serge will do the two-way sync with Pootle automatically using it's sync_stores and update_stores commands. All you need to do in your Serge config is to add the following section:

sync
{
    ts
    {
        plugin                      pootle

        data
        {
            manage_py_path          /path/to/pootle/manage.py
            project_id              project1
        }
    }

    ...
}

from serge.

iafan avatar iafan commented on September 13, 2024

I'll keep this open till I add the above mentioned short tutorial to Serge's pootle plugin documentation.

from serge.

julen avatar julen commented on September 13, 2024

@iafan out of curiosity: does the plugin take virtual environments into account? If one runs manage.py directly, the first Python interpreter found in PATH will be used, which won't match the intended interpreter if using virtual environments.

Also, if users installed Pootle via pip, they will have the pootle command available, which serves the same purpose as manage.py (note the latter will be buried somewhere under the Python installation subdirectories). So how does one specify to use the pootle command in that case? Does it happen automatically?

from serge.

iafan avatar iafan commented on September 13, 2024

Good point, @julen!

  1. If Pootle is installed from under virtualenv, you need to make sure that manage.py is being run in the context of this environment (one can create a wrapper shell script to select this environment and call the script itself).
  2. If in your system there's a script called pootle instead of manage.py, then use it.

Basically, you need to tell Serge a path to some script that will consume sync_stores and update_stores commands and properly run them against the installed Pootle instance. Serge doesn't try to be overly smart about detecting system configuration.

from serge.

prat0088 avatar prat0088 commented on September 13, 2024

Thanks for the reply. I think I got most of that on my own after some digging. It turns out my problem was the language. I was specifying "jpn" for Japanese in my .serge file. Pootle was expecting the directory 'ja', not 'jpn' for the .po files.

from serge.

iafan avatar iafan commented on September 13, 2024

Added relevant documentation: https://serge.io/docs/guides/pootle/

from serge.

Related Issues (20)

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.