From 23d44b52ee12129713f20b86ad1a38f937a72af9 Mon Sep 17 00:00:00 2001 From: Julien Palard Date: Fri, 11 Aug 2017 23:33:03 +0200 Subject: [PATCH] Better documenting maintenance processes. --- .gitignore | 1 + .tx/config | 2332 ++++++++++++++++++++++++++++++++++++++++++++++++++++ README.rst | 69 +- 3 files changed, 2385 insertions(+), 17 deletions(-) create mode 100644 .tx/config diff --git a/.gitignore b/.gitignore index cd1f2c94..b94dfd2b 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ *.mo +.tx/**/*.po diff --git a/.tx/config b/.tx/config new file mode 100644 index 00000000..3eb456d8 --- /dev/null +++ b/.tx/config @@ -0,0 +1,2332 @@ +[main] +host = https://www.transifex.com +[python-36.glossary_] +trans.fr = .tx/glossary.po +type = PO +source_lang = en + +[python-36.license] +trans.fr = .tx/license.po +type = PO +source_lang = en + +[python-36.sphinx] +trans.fr = .tx/sphinx.po +type = PO +source_lang = en + +[python-36.about] +trans.fr = .tx/about.po +type = PO +source_lang = en + +[python-36.bugs] +trans.fr = .tx/bugs.po +type = PO +source_lang = en + +[python-36.copyright] +trans.fr = .tx/copyright.po +type = PO +source_lang = en + +[python-36.contents] +trans.fr = .tx/contents.po +type = PO +source_lang = en + +[python-36.library--re] +trans.fr = .tx/library/re.po +type = PO +source_lang = en + +[python-36.library--sysconfig] +trans.fr = .tx/library/sysconfig.po +type = PO +source_lang = en + +[python-36.library--getpass] +trans.fr = .tx/library/getpass.po +type = PO +source_lang = en + +[python-36.library--imghdr] +trans.fr = .tx/library/imghdr.po +type = PO +source_lang = en + +[python-36.library--zipapp] +trans.fr = .tx/library/zipapp.po +type = PO +source_lang = en + +[python-36.library--urllib_error] +trans.fr = .tx/library/urllib.error.po +type = PO +source_lang = en + +[python-36.library--urllib_parse] +trans.fr = .tx/library/urllib.parse.po +type = PO +source_lang = en + +[python-36.library--xml_sax_utils] +trans.fr = .tx/library/xml.sax.utils.po +type = PO +source_lang = en + +[python-36.library--mmap] +trans.fr = .tx/library/mmap.po +type = PO +source_lang = en + +[python-36.library--difflib] +trans.fr = .tx/library/difflib.po +type = PO +source_lang = en + +[python-36.library--tkinter_scrolledtext] +trans.fr = .tx/library/tkinter.scrolledtext.po +type = PO +source_lang = en + +[python-36.library--parser] +trans.fr = .tx/library/parser.po +type = PO +source_lang = en + +[python-36.library--pyexpat] +trans.fr = .tx/library/pyexpat.po +type = PO +source_lang = en + +[python-36.library--curses_panel] +trans.fr = .tx/library/curses.panel.po +type = PO +source_lang = en + +[python-36.library--fractions] +trans.fr = .tx/library/fractions.po +type = PO +source_lang = en + +[python-36.library--asyncio-subprocess] +trans.fr = .tx/library/asyncio-subprocess.po +type = PO +source_lang = en + +[python-36.library--compileall] +trans.fr = .tx/library/compileall.po +type = PO +source_lang = en + +[python-36.library--optparse] +trans.fr = .tx/library/optparse.po +type = PO +source_lang = en + +[python-36.library--imp] +trans.fr = .tx/library/imp.po +type = PO +source_lang = en + +[python-36.library--locale] +trans.fr = .tx/library/locale.po +type = PO +source_lang = en + +[python-36.library--ctypes] +trans.fr = .tx/library/ctypes.po +type = PO +source_lang = en + +[python-36.library--doctest] +trans.fr = .tx/library/doctest.po +type = PO +source_lang = en + +[python-36.library--distribution] +trans.fr = .tx/library/distribution.po +type = PO +source_lang = en + +[python-36.library--ipc] +trans.fr = .tx/library/ipc.po +type = PO +source_lang = en + +[python-36.library--numeric] +trans.fr = .tx/library/numeric.po +type = PO +source_lang = en + +[python-36.library--email_headerregistry] +trans.fr = .tx/library/email.headerregistry.po +type = PO +source_lang = en + +[python-36.library--wave] +trans.fr = .tx/library/wave.po +type = PO +source_lang = en + +[python-36.library--email_errors] +trans.fr = .tx/library/email.errors.po +type = PO +source_lang = en + +[python-36.library--sunau] +trans.fr = .tx/library/sunau.po +type = PO +source_lang = en + +[python-36.library--datetime] +trans.fr = .tx/library/datetime.po +type = PO +source_lang = en + +[python-36.library--macpath] +trans.fr = .tx/library/macpath.po +type = PO +source_lang = en + +[python-36.library--unix] +trans.fr = .tx/library/unix.po +type = PO +source_lang = en + +[python-36.library--array] +trans.fr = .tx/library/array.po +type = PO +source_lang = en + +[python-36.library--email_policy] +trans.fr = .tx/library/email.policy.po +type = PO +source_lang = en + +[python-36.library--sched] +trans.fr = .tx/library/sched.po +type = PO +source_lang = en + +[python-36.library--http_cookies] +trans.fr = .tx/library/http.cookies.po +type = PO +source_lang = en + +[python-36.library--shutil] +trans.fr = .tx/library/shutil.po +type = PO +source_lang = en + +[python-36.library--symbol] +trans.fr = .tx/library/symbol.po +type = PO +source_lang = en + +[python-36.library--xml_dom_minidom] +trans.fr = .tx/library/xml.dom.minidom.po +type = PO +source_lang = en + +[python-36.library--modules] +trans.fr = .tx/library/modules.po +type = PO +source_lang = en + +[python-36.library--unicodedata] +trans.fr = .tx/library/unicodedata.po +type = PO +source_lang = en + +[python-36.library--tkinter_ttk] +trans.fr = .tx/library/tkinter.ttk.po +type = PO +source_lang = en + +[python-36.library--binascii] +trans.fr = .tx/library/binascii.po +type = PO +source_lang = en + +[python-36.library--linecache] +trans.fr = .tx/library/linecache.po +type = PO +source_lang = en + +[python-36.library--functools] +trans.fr = .tx/library/functools.po +type = PO +source_lang = en + +[python-36.library--xml_sax_reader] +trans.fr = .tx/library/xml.sax.reader.po +type = PO +source_lang = en + +[python-36.library--pydoc] +trans.fr = .tx/library/pydoc.po +type = PO +source_lang = en + +[python-36.library--pwd] +trans.fr = .tx/library/pwd.po +type = PO +source_lang = en + +[python-36.library--selectors] +trans.fr = .tx/library/selectors.po +type = PO +source_lang = en + +[python-36.library--os_path] +trans.fr = .tx/library/os.path.po +type = PO +source_lang = en + +[python-36.library--asyncio-sync] +trans.fr = .tx/library/asyncio-sync.po +type = PO +source_lang = en + +[python-36.library--_dummy_thread] +trans.fr = .tx/library/_dummy_thread.po +type = PO +source_lang = en + +[python-36.library--fcntl] +trans.fr = .tx/library/fcntl.po +type = PO +source_lang = en + +[python-36.library--constants] +trans.fr = .tx/library/constants.po +type = PO +source_lang = en + +[python-36.library--statistics] +trans.fr = .tx/library/statistics.po +type = PO +source_lang = en + +[python-36.library--pty] +trans.fr = .tx/library/pty.po +type = PO +source_lang = en + +[python-36.library--crypto] +trans.fr = .tx/library/crypto.po +type = PO +source_lang = en + +[python-36.library--xml] +trans.fr = .tx/library/xml.po +type = PO +source_lang = en + +[python-36.library--imaplib] +trans.fr = .tx/library/imaplib.po +type = PO +source_lang = en + +[python-36.library--text] +trans.fr = .tx/library/text.po +type = PO +source_lang = en + +[python-36.library--mm] +trans.fr = .tx/library/mm.po +type = PO +source_lang = en + +[python-36.library--tempfile] +trans.fr = .tx/library/tempfile.po +type = PO +source_lang = en + +[python-36.library--traceback] +trans.fr = .tx/library/traceback.po +type = PO +source_lang = en + +[python-36.library--itertools] +trans.fr = .tx/library/itertools.po +type = PO +source_lang = en + +[python-36.library--__future__] +trans.fr = .tx/library/__future__.po +type = PO +source_lang = en + +[python-36.library--csv] +trans.fr = .tx/library/csv.po +type = PO +source_lang = en + +[python-36.library--stringprep] +trans.fr = .tx/library/stringprep.po +type = PO +source_lang = en + +[python-36.library--development] +trans.fr = .tx/library/development.po +type = PO +source_lang = en + +[python-36.library--platform] +trans.fr = .tx/library/platform.po +type = PO +source_lang = en + +[python-36.library--time] +trans.fr = .tx/library/time.po +type = PO +source_lang = en + +[python-36.library--pyclbr] +trans.fr = .tx/library/pyclbr.po +type = PO +source_lang = en + +[python-36.library--crypt] +trans.fr = .tx/library/crypt.po +type = PO +source_lang = en + +[python-36.library--token] +trans.fr = .tx/library/token.po +type = PO +source_lang = en + +[python-36.library--spwd] +trans.fr = .tx/library/spwd.po +type = PO +source_lang = en + +[python-36.library--modulefinder] +trans.fr = .tx/library/modulefinder.po +type = PO +source_lang = en + +[python-36.library--argparse] +trans.fr = .tx/library/argparse.po +type = PO +source_lang = en + +[python-36.library--collections] +trans.fr = .tx/library/collections.po +type = PO +source_lang = en + +[python-36.library--http] +trans.fr = .tx/library/http.po +type = PO +source_lang = en + +[python-36.library--email] +trans.fr = .tx/library/email.po +type = PO +source_lang = en + +[python-36.library--http_cookiejar] +trans.fr = .tx/library/http.cookiejar.po +type = PO +source_lang = en + +[python-36.library--cmd] +trans.fr = .tx/library/cmd.po +type = PO +source_lang = en + +[python-36.library--xml_dom_pulldom] +trans.fr = .tx/library/xml.dom.pulldom.po +type = PO +source_lang = en + +[python-36.library--glob] +trans.fr = .tx/library/glob.po +type = PO +source_lang = en + +[python-36.library--keyword] +trans.fr = .tx/library/keyword.po +type = PO +source_lang = en + +[python-36.library--concurrency] +trans.fr = .tx/library/concurrency.po +type = PO +source_lang = en + +[python-36.library--atexit] +trans.fr = .tx/library/atexit.po +type = PO +source_lang = en + +[python-36.library--py_compile] +trans.fr = .tx/library/py_compile.po +type = PO +source_lang = en + +[python-36.library--email_encoders] +trans.fr = .tx/library/email.encoders.po +type = PO +source_lang = en + +[python-36.library--inspect] +trans.fr = .tx/library/inspect.po +type = PO +source_lang = en + +[python-36.library--unittest_mock] +trans.fr = .tx/library/unittest.mock.po +type = PO +source_lang = en + +[python-36.library--asyncio-eventloops] +trans.fr = .tx/library/asyncio-eventloops.po +type = PO +source_lang = en + +[python-36.library--allos] +trans.fr = .tx/library/allos.po +type = PO +source_lang = en + +[python-36.library--stat] +trans.fr = .tx/library/stat.po +type = PO +source_lang = en + +[python-36.library--curses] +trans.fr = .tx/library/curses.po +type = PO +source_lang = en + +[python-36.library--persistence] +trans.fr = .tx/library/persistence.po +type = PO +source_lang = en + +[python-36.library--trace] +trans.fr = .tx/library/trace.po +type = PO +source_lang = en + +[python-36.library--zipfile] +trans.fr = .tx/library/zipfile.po +type = PO +source_lang = en + +[python-36.library--mimetypes] +trans.fr = .tx/library/mimetypes.po +type = PO +source_lang = en + +[python-36.library--superseded] +trans.fr = .tx/library/superseded.po +type = PO +source_lang = en + +[python-36.library--internet] +trans.fr = .tx/library/internet.po +type = PO +source_lang = en + +[python-36.library--poplib] +trans.fr = .tx/library/poplib.po +type = PO +source_lang = en + +[python-36.library--language] +trans.fr = .tx/library/language.po +type = PO +source_lang = en + +[python-36.library--string] +trans.fr = .tx/library/string.po +type = PO +source_lang = en + +[python-36.library--mailcap] +trans.fr = .tx/library/mailcap.po +type = PO +source_lang = en + +[python-36.library--email_parser] +trans.fr = .tx/library/email.parser.po +type = PO +source_lang = en + +[python-36.library--bz2] +trans.fr = .tx/library/bz2.po +type = PO +source_lang = en + +[python-36.library--builtins] +trans.fr = .tx/library/builtins.po +type = PO +source_lang = en + +[python-36.library--logging_config] +trans.fr = .tx/library/logging.config.po +type = PO +source_lang = en + +[python-36.library--xml_sax_handler] +trans.fr = .tx/library/xml.sax.handler.po +type = PO +source_lang = en + +[python-36.library--intro] +trans.fr = .tx/library/intro.po +type = PO +source_lang = en + +[python-36.library--python] +trans.fr = .tx/library/python.po +type = PO +source_lang = en + +[python-36.library--tarfile] +trans.fr = .tx/library/tarfile.po +type = PO +source_lang = en + +[python-36.library--fnmatch] +trans.fr = .tx/library/fnmatch.po +type = PO +source_lang = en + +[python-36.library--tty] +trans.fr = .tx/library/tty.po +type = PO +source_lang = en + +[python-36.library--signal] +trans.fr = .tx/library/signal.po +type = PO +source_lang = en + +[python-36.library--contextlib] +trans.fr = .tx/library/contextlib.po +type = PO +source_lang = en + +[python-36.library--pkgutil] +trans.fr = .tx/library/pkgutil.po +type = PO +source_lang = en + +[python-36.library--codeop] +trans.fr = .tx/library/codeop.po +type = PO +source_lang = en + +[python-36.library--gettext] +trans.fr = .tx/library/gettext.po +type = PO +source_lang = en + +[python-36.library--enum] +trans.fr = .tx/library/enum.po +type = PO +source_lang = en + +[python-36.library--decimal] +trans.fr = .tx/library/decimal.po +type = PO +source_lang = en + +[python-36.library--asyncio] +trans.fr = .tx/library/asyncio.po +type = PO +source_lang = en + +[python-36.library--windows] +trans.fr = .tx/library/windows.po +type = PO +source_lang = en + +[python-36.library--urllib_request] +trans.fr = .tx/library/urllib.request.po +type = PO +source_lang = en + +[python-36.library--socket] +trans.fr = .tx/library/socket.po +type = PO +source_lang = en + +[python-36.library--mailbox] +trans.fr = .tx/library/mailbox.po +type = PO +source_lang = en + +[python-36.library--rlcompleter] +trans.fr = .tx/library/rlcompleter.po +type = PO +source_lang = en + +[python-36.library--gzip] +trans.fr = .tx/library/gzip.po +type = PO +source_lang = en + +[python-36.library--http_client] +trans.fr = .tx/library/http.client.po +type = PO +source_lang = en + +[python-36.library--pickle] +trans.fr = .tx/library/pickle.po +type = PO +source_lang = en + +[python-36.library--concurrent] +trans.fr = .tx/library/concurrent.po +type = PO +source_lang = en + +[python-36.library--timeit] +trans.fr = .tx/library/timeit.po +type = PO +source_lang = en + +[python-36.library--tkinter_tix] +trans.fr = .tx/library/tkinter.tix.po +type = PO +source_lang = en + +[python-36.library--readline] +trans.fr = .tx/library/readline.po +type = PO +source_lang = en + +[python-36.library--netrc] +trans.fr = .tx/library/netrc.po +type = PO +source_lang = en + +[python-36.library--asyncio-dev] +trans.fr = .tx/library/asyncio-dev.po +type = PO +source_lang = en + +[python-36.library--email_charset] +trans.fr = .tx/library/email.charset.po +type = PO +source_lang = en + +[python-36.library--venv] +trans.fr = .tx/library/venv.po +type = PO +source_lang = en + +[python-36.library--struct] +trans.fr = .tx/library/struct.po +type = PO +source_lang = en + +[python-36.library--dbm] +trans.fr = .tx/library/dbm.po +type = PO +source_lang = en + +[python-36.library--xdrlib] +trans.fr = .tx/library/xdrlib.po +type = PO +source_lang = en + +[python-36.library--markup] +trans.fr = .tx/library/markup.po +type = PO +source_lang = en + +[python-36.library--dummy_threading] +trans.fr = .tx/library/dummy_threading.po +type = PO +source_lang = en + +[python-36.library--xml_dom] +trans.fr = .tx/library/xml.dom.po +type = PO +source_lang = en + +[python-36.library--smtpd] +trans.fr = .tx/library/smtpd.po +type = PO +source_lang = en + +[python-36.library--idle] +trans.fr = .tx/library/idle.po +type = PO +source_lang = en + +[python-36.library--pipes] +trans.fr = .tx/library/pipes.po +type = PO +source_lang = en + +[python-36.library--chunk] +trans.fr = .tx/library/chunk.po +type = PO +source_lang = en + +[python-36.library--telnetlib] +trans.fr = .tx/library/telnetlib.po +type = PO +source_lang = en + +[python-36.library--filesys] +trans.fr = .tx/library/filesys.po +type = PO +source_lang = en + +[python-36.library--asynchat] +trans.fr = .tx/library/asynchat.po +type = PO +source_lang = en + +[python-36.library--numbers] +trans.fr = .tx/library/numbers.po +type = PO +source_lang = en + +[python-36.library--xmlrpc_server] +trans.fr = .tx/library/xmlrpc.server.po +type = PO +source_lang = en + +[python-36.library--plistlib] +trans.fr = .tx/library/plistlib.po +type = PO +source_lang = en + +[python-36.library--secrets] +trans.fr = .tx/library/secrets.po +type = PO +source_lang = en + +[python-36.library--marshal] +trans.fr = .tx/library/marshal.po +type = PO +source_lang = en + +[python-36.library--html_parser] +trans.fr = .tx/library/html.parser.po +type = PO +source_lang = en + +[python-36.library--netdata] +trans.fr = .tx/library/netdata.po +type = PO +source_lang = en + +[python-36.library--gc] +trans.fr = .tx/library/gc.po +type = PO +source_lang = en + +[python-36.library--fileformats] +trans.fr = .tx/library/fileformats.po +type = PO +source_lang = en + +[python-36.library--bisect] +trans.fr = .tx/library/bisect.po +type = PO +source_lang = en + +[python-36.library--symtable] +trans.fr = .tx/library/symtable.po +type = PO +source_lang = en + +[python-36.library--nis] +trans.fr = .tx/library/nis.po +type = PO +source_lang = en + +[python-36.library--html] +trans.fr = .tx/library/html.po +type = PO +source_lang = en + +[python-36.library--typing] +trans.fr = .tx/library/typing.po +type = PO +source_lang = en + +[python-36.library--weakref] +trans.fr = .tx/library/weakref.po +type = PO +source_lang = en + +[python-36.library--shlex] +trans.fr = .tx/library/shlex.po +type = PO +source_lang = en + +[python-36.library--binary] +trans.fr = .tx/library/binary.po +type = PO +source_lang = en + +[python-36.library--distutils] +trans.fr = .tx/library/distutils.po +type = PO +source_lang = en + +[python-36.library--email_generator] +trans.fr = .tx/library/email.generator.po +type = PO +source_lang = en + +[python-36.library--ensurepip] +trans.fr = .tx/library/ensurepip.po +type = PO +source_lang = en + +[python-36.library--importlib] +trans.fr = .tx/library/importlib.po +type = PO +source_lang = en + +[python-36.library--warnings] +trans.fr = .tx/library/warnings.po +type = PO +source_lang = en + +[python-36.library--tabnanny] +trans.fr = .tx/library/tabnanny.po +type = PO +source_lang = en + +[python-36.library--json] +trans.fr = .tx/library/json.po +type = PO +source_lang = en + +[python-36.library--reprlib] +trans.fr = .tx/library/reprlib.po +type = PO +source_lang = en + +[python-36.library--concurrent_futures] +trans.fr = .tx/library/concurrent.futures.po +type = PO +source_lang = en + +[python-36.library--tk] +trans.fr = .tx/library/tk.po +type = PO +source_lang = en + +[python-36.library--abc] +trans.fr = .tx/library/abc.po +type = PO +source_lang = en + +[python-36.library--filecmp] +trans.fr = .tx/library/filecmp.po +type = PO +source_lang = en + +[python-36.library--undoc] +trans.fr = .tx/library/undoc.po +type = PO +source_lang = en + +[python-36.library--functions] +trans.fr = .tx/library/functions.po +type = PO +source_lang = en + +[python-36.library--unittest_mock-examples] +trans.fr = .tx/library/unittest.mock-examples.po +type = PO +source_lang = en + +[python-36.library--heapq] +trans.fr = .tx/library/heapq.po +type = PO +source_lang = en + +[python-36.library--termios] +trans.fr = .tx/library/termios.po +type = PO +source_lang = en + +[python-36.library--errno] +trans.fr = .tx/library/errno.po +type = PO +source_lang = en + +[python-36.library--calendar] +trans.fr = .tx/library/calendar.po +type = PO +source_lang = en + +[python-36.library--configparser] +trans.fr = .tx/library/configparser.po +type = PO +source_lang = en + +[python-36.library--unittest] +trans.fr = .tx/library/unittest.po +type = PO +source_lang = en + +[python-36.library--socketserver] +trans.fr = .tx/library/socketserver.po +type = PO +source_lang = en + +[python-36.library--tokenize] +trans.fr = .tx/library/tokenize.po +type = PO +source_lang = en + +[python-36.library--random] +trans.fr = .tx/library/random.po +type = PO +source_lang = en + +[python-36.library--code] +trans.fr = .tx/library/code.po +type = PO +source_lang = en + +[python-36.library--sqlite3] +trans.fr = .tx/library/sqlite3.po +type = PO +source_lang = en + +[python-36.library--colorsys] +trans.fr = .tx/library/colorsys.po +type = PO +source_lang = en + +[python-36.library--quopri] +trans.fr = .tx/library/quopri.po +type = PO +source_lang = en + +[python-36.library--dis] +trans.fr = .tx/library/dis.po +type = PO +source_lang = en + +[python-36.library--stdtypes] +trans.fr = .tx/library/stdtypes.po +type = PO +source_lang = en + +[python-36.library--tracemalloc] +trans.fr = .tx/library/tracemalloc.po +type = PO +source_lang = en + +[python-36.library--queue] +trans.fr = .tx/library/queue.po +type = PO +source_lang = en + +[python-36.library--posix] +trans.fr = .tx/library/posix.po +type = PO +source_lang = en + +[python-36.library--turtle] +trans.fr = .tx/library/turtle.po +type = PO +source_lang = en + +[python-36.library--faulthandler] +trans.fr = .tx/library/faulthandler.po +type = PO +source_lang = en + +[python-36.library--email_examples] +trans.fr = .tx/library/email.examples.po +type = PO +source_lang = en + +[python-36.library--base64] +trans.fr = .tx/library/base64.po +type = PO +source_lang = en + +[python-36.library--index] +trans.fr = .tx/library/index.po +type = PO +source_lang = en + +[python-36.library--email_message] +trans.fr = .tx/library/email.message.po +type = PO +source_lang = en + +[python-36.library--xml_etree_elementtree] +trans.fr = .tx/library/xml.etree.elementtree.po +type = PO +source_lang = en + +[python-36.library--asyncio-task] +trans.fr = .tx/library/asyncio-task.po +type = PO +source_lang = en + +[python-36.library--asyncore] +trans.fr = .tx/library/asyncore.po +type = PO +source_lang = en + +[python-36.library--uu] +trans.fr = .tx/library/uu.po +type = PO +source_lang = en + +[python-36.library--urllib_robotparser] +trans.fr = .tx/library/urllib.robotparser.po +type = PO +source_lang = en + +[python-36.library--cgitb] +trans.fr = .tx/library/cgitb.po +type = PO +source_lang = en + +[python-36.library--pathlib] +trans.fr = .tx/library/pathlib.po +type = PO +source_lang = en + +[python-36.library--misc] +trans.fr = .tx/library/misc.po +type = PO +source_lang = en + +[python-36.library--_thread] +trans.fr = .tx/library/_thread.po +type = PO +source_lang = en + +[python-36.library--email_header] +trans.fr = .tx/library/email.header.po +type = PO +source_lang = en + +[python-36.library--runpy] +trans.fr = .tx/library/runpy.po +type = PO +source_lang = en + +[python-36.library--asyncio-eventloop] +trans.fr = .tx/library/asyncio-eventloop.po +type = PO +source_lang = en + +[python-36.library--textwrap] +trans.fr = .tx/library/textwrap.po +type = PO +source_lang = en + +[python-36.library--msilib] +trans.fr = .tx/library/msilib.po +type = PO +source_lang = en + +[python-36.library--debug] +trans.fr = .tx/library/debug.po +type = PO +source_lang = en + +[python-36.library--nntplib] +trans.fr = .tx/library/nntplib.po +type = PO +source_lang = en + +[python-36.library--ast] +trans.fr = .tx/library/ast.po +type = PO +source_lang = en + +[python-36.library--site] +trans.fr = .tx/library/site.po +type = PO +source_lang = en + +[python-36.library--uuid] +trans.fr = .tx/library/uuid.po +type = PO +source_lang = en + +[python-36.library--email_iterators] +trans.fr = .tx/library/email.iterators.po +type = PO +source_lang = en + +[python-36.library--threading] +trans.fr = .tx/library/threading.po +type = PO +source_lang = en + +[python-36.library--email_mime] +trans.fr = .tx/library/email.mime.po +type = PO +source_lang = en + +[python-36.library--shelve] +trans.fr = .tx/library/shelve.po +type = PO +source_lang = en + +[python-36.library--profile] +trans.fr = .tx/library/profile.po +type = PO +source_lang = en + +[python-36.library--math] +trans.fr = .tx/library/math.po +type = PO +source_lang = en + +[python-36.library--fileinput] +trans.fr = .tx/library/fileinput.po +type = PO +source_lang = en + +[python-36.library--select] +trans.fr = .tx/library/select.po +type = PO +source_lang = en + +[python-36.library--pprint] +trans.fr = .tx/library/pprint.po +type = PO +source_lang = en + +[python-36.library--datatypes] +trans.fr = .tx/library/datatypes.po +type = PO +source_lang = en + +[python-36.library--ssl] +trans.fr = .tx/library/ssl.po +type = PO +source_lang = en + +[python-36.library--asyncio-queue] +trans.fr = .tx/library/asyncio-queue.po +type = PO +source_lang = en + +[python-36.library--binhex] +trans.fr = .tx/library/binhex.po +type = PO +source_lang = en + +[python-36.library--io] +trans.fr = .tx/library/io.po +type = PO +source_lang = en + +[python-36.library--asyncio-protocol] +trans.fr = .tx/library/asyncio-protocol.po +type = PO +source_lang = en + +[python-36.library--othergui] +trans.fr = .tx/library/othergui.po +type = PO +source_lang = en + +[python-36.library--webbrowser] +trans.fr = .tx/library/webbrowser.po +type = PO +source_lang = en + +[python-36.library--hmac] +trans.fr = .tx/library/hmac.po +type = PO +source_lang = en + +[python-36.library--collections_abc] +trans.fr = .tx/library/collections.abc.po +type = PO +source_lang = en + +[python-36.library--ftplib] +trans.fr = .tx/library/ftplib.po +type = PO +source_lang = en + +[python-36.library--multiprocessing] +trans.fr = .tx/library/multiprocessing.po +type = PO +source_lang = en + +[python-36.library--types] +trans.fr = .tx/library/types.po +type = PO +source_lang = en + +[python-36.library--ipaddress] +trans.fr = .tx/library/ipaddress.po +type = PO +source_lang = en + +[python-36.library--fpectl] +trans.fr = .tx/library/fpectl.po +type = PO +source_lang = en + +[python-36.library--exceptions] +trans.fr = .tx/library/exceptions.po +type = PO +source_lang = en + +[python-36.library--asyncio-stream] +trans.fr = .tx/library/asyncio-stream.po +type = PO +source_lang = en + +[python-36.library--custominterp] +trans.fr = .tx/library/custominterp.po +type = PO +source_lang = en + +[python-36.library--codecs] +trans.fr = .tx/library/codecs.po +type = PO +source_lang = en + +[python-36.library--bdb] +trans.fr = .tx/library/bdb.po +type = PO +source_lang = en + +[python-36.library--archiving] +trans.fr = .tx/library/archiving.po +type = PO +source_lang = en + +[python-36.library--hashlib] +trans.fr = .tx/library/hashlib.po +type = PO +source_lang = en + +[python-36.library--tkinter] +trans.fr = .tx/library/tkinter.po +type = PO +source_lang = en + +[python-36.library--sys] +trans.fr = .tx/library/sys.po +type = PO +source_lang = en + +[python-36.library--cmath] +trans.fr = .tx/library/cmath.po +type = PO +source_lang = en + +[python-36.library--functional] +trans.fr = .tx/library/functional.po +type = PO +source_lang = en + +[python-36.library--html_entities] +trans.fr = .tx/library/html.entities.po +type = PO +source_lang = en + +[python-36.library--resource] +trans.fr = .tx/library/resource.po +type = PO +source_lang = en + +[python-36.library--pickletools] +trans.fr = .tx/library/pickletools.po +type = PO +source_lang = en + +[python-36.library--email_util] +trans.fr = .tx/library/email.util.po +type = PO +source_lang = en + +[python-36.library--xmlrpc] +trans.fr = .tx/library/xmlrpc.po +type = PO +source_lang = en + +[python-36.library--lzma] +trans.fr = .tx/library/lzma.po +type = PO +source_lang = en + +[python-36.library--syslog] +trans.fr = .tx/library/syslog.po +type = PO +source_lang = en + +[python-36.library--subprocess] +trans.fr = .tx/library/subprocess.po +type = PO +source_lang = en + +[python-36.library--pdb] +trans.fr = .tx/library/pdb.po +type = PO +source_lang = en + +[python-36.library--wsgiref] +trans.fr = .tx/library/wsgiref.po +type = PO +source_lang = en + +[python-36.library--formatter] +trans.fr = .tx/library/formatter.po +type = PO +source_lang = en + +[python-36.library--getopt] +trans.fr = .tx/library/getopt.po +type = PO +source_lang = en + +[python-36.library--cgi] +trans.fr = .tx/library/cgi.po +type = PO +source_lang = en + +[python-36.library--winsound] +trans.fr = .tx/library/winsound.po +type = PO +source_lang = en + +[python-36.library--audioop] +trans.fr = .tx/library/audioop.po +type = PO +source_lang = en + +[python-36.library--__main__] +trans.fr = .tx/library/__main__.po +type = PO +source_lang = en + +[python-36.library--sndhdr] +trans.fr = .tx/library/sndhdr.po +type = PO +source_lang = en + +[python-36.library--copy] +trans.fr = .tx/library/copy.po +type = PO +source_lang = en + +[python-36.library--email_contentmanager] +trans.fr = .tx/library/email.contentmanager.po +type = PO +source_lang = en + +[python-36.library--aifc] +trans.fr = .tx/library/aifc.po +type = PO +source_lang = en + +[python-36.library--msvcrt] +trans.fr = .tx/library/msvcrt.po +type = PO +source_lang = en + +[python-36.library--xmlrpc_client] +trans.fr = .tx/library/xmlrpc.client.po +type = PO +source_lang = en + +[python-36.library--logging_handlers] +trans.fr = .tx/library/logging.handlers.po +type = PO +source_lang = en + +[python-36.library--grp] +trans.fr = .tx/library/grp.po +type = PO +source_lang = en + +[python-36.library--logging] +trans.fr = .tx/library/logging.po +type = PO +source_lang = en + +[python-36.library--i18n] +trans.fr = .tx/library/i18n.po +type = PO +source_lang = en + +[python-36.library--zipimport] +trans.fr = .tx/library/zipimport.po +type = PO +source_lang = en + +[python-36.library--curses_ascii] +trans.fr = .tx/library/curses.ascii.po +type = PO +source_lang = en + +[python-36.library--operator] +trans.fr = .tx/library/operator.po +type = PO +source_lang = en + +[python-36.library--winreg] +trans.fr = .tx/library/winreg.po +type = PO +source_lang = en + +[python-36.library--frameworks] +trans.fr = .tx/library/frameworks.po +type = PO +source_lang = en + +[python-36.library--ossaudiodev] +trans.fr = .tx/library/ossaudiodev.po +type = PO +source_lang = en + +[python-36.library--urllib] +trans.fr = .tx/library/urllib.po +type = PO +source_lang = en + +[python-36.library--os] +trans.fr = .tx/library/os.po +type = PO +source_lang = en + +[python-36.library--smtplib] +trans.fr = .tx/library/smtplib.po +type = PO +source_lang = en + +[python-36.library--copyreg] +trans.fr = .tx/library/copyreg.po +type = PO +source_lang = en + +[python-36.library--test] +trans.fr = .tx/library/test.po +type = PO +source_lang = en + +[python-36.library--xml_sax] +trans.fr = .tx/library/xml.sax.po +type = PO +source_lang = en + +[python-36.library--2to3] +trans.fr = .tx/library/2to3.po +type = PO +source_lang = en + +[python-36.library--http_server] +trans.fr = .tx/library/http.server.po +type = PO +source_lang = en + +[python-36.library--email_compat32-message] +trans.fr = .tx/library/email.compat32-message.po +type = PO +source_lang = en + +[python-36.library--zlib] +trans.fr = .tx/library/zlib.po +type = PO +source_lang = en + +[python-36.distutils--configfile] +trans.fr = .tx/distutils/configfile.po +type = PO +source_lang = en + +[python-36.distutils--sourcedist] +trans.fr = .tx/distutils/sourcedist.po +type = PO +source_lang = en + +[python-36.distutils--extending] +trans.fr = .tx/distutils/extending.po +type = PO +source_lang = en + +[python-36.distutils--setupscript] +trans.fr = .tx/distutils/setupscript.po +type = PO +source_lang = en + +[python-36.distutils--commandref] +trans.fr = .tx/distutils/commandref.po +type = PO +source_lang = en + +[python-36.distutils--builtdist] +trans.fr = .tx/distutils/builtdist.po +type = PO +source_lang = en + +[python-36.distutils--introduction] +trans.fr = .tx/distutils/introduction.po +type = PO +source_lang = en + +[python-36.distutils--index] +trans.fr = .tx/distutils/index.po +type = PO +source_lang = en + +[python-36.distutils--packageindex] +trans.fr = .tx/distutils/packageindex.po +type = PO +source_lang = en + +[python-36.distutils--examples] +trans.fr = .tx/distutils/examples.po +type = PO +source_lang = en + +[python-36.distutils--uploading] +trans.fr = .tx/distutils/uploading.po +type = PO +source_lang = en + +[python-36.distutils--apiref] +trans.fr = .tx/distutils/apiref.po +type = PO +source_lang = en + +[python-36.distributing--index] +trans.fr = .tx/distributing/index.po +type = PO +source_lang = en + +[python-36.faq--extending] +trans.fr = .tx/faq/extending.po +type = PO +source_lang = en + +[python-36.faq--windows] +trans.fr = .tx/faq/windows.po +type = PO +source_lang = en + +[python-36.faq--general] +trans.fr = .tx/faq/general.po +type = PO +source_lang = en + +[python-36.faq--library] +trans.fr = .tx/faq/library.po +type = PO +source_lang = en + +[python-36.faq--gui] +trans.fr = .tx/faq/gui.po +type = PO +source_lang = en + +[python-36.faq--installed] +trans.fr = .tx/faq/installed.po +type = PO +source_lang = en + +[python-36.faq--index] +trans.fr = .tx/faq/index.po +type = PO +source_lang = en + +[python-36.faq--design] +trans.fr = .tx/faq/design.po +type = PO +source_lang = en + +[python-36.faq--programming] +trans.fr = .tx/faq/programming.po +type = PO +source_lang = en + +[python-36.using--unix] +trans.fr = .tx/using/unix.po +type = PO +source_lang = en + +[python-36.using--mac] +trans.fr = .tx/using/mac.po +type = PO +source_lang = en + +[python-36.using--cmdline] +trans.fr = .tx/using/cmdline.po +type = PO +source_lang = en + +[python-36.using--windows] +trans.fr = .tx/using/windows.po +type = PO +source_lang = en + +[python-36.using--index] +trans.fr = .tx/using/index.po +type = PO +source_lang = en + +[python-36.howto--clinic] +trans.fr = .tx/howto/clinic.po +type = PO +source_lang = en + +[python-36.howto--urllib2] +trans.fr = .tx/howto/urllib2.po +type = PO +source_lang = en + +[python-36.howto--argparse] +trans.fr = .tx/howto/argparse.po +type = PO +source_lang = en + +[python-36.howto--curses] +trans.fr = .tx/howto/curses.po +type = PO +source_lang = en + +[python-36.howto--logging-cookbook] +trans.fr = .tx/howto/logging-cookbook.po +type = PO +source_lang = en + +[python-36.howto--sockets] +trans.fr = .tx/howto/sockets.po +type = PO +source_lang = en + +[python-36.howto--pyporting] +trans.fr = .tx/howto/pyporting.po +type = PO +source_lang = en + +[python-36.howto--index] +trans.fr = .tx/howto/index.po +type = PO +source_lang = en + +[python-36.howto--unicode] +trans.fr = .tx/howto/unicode.po +type = PO +source_lang = en + +[python-36.howto--instrumentation] +trans.fr = .tx/howto/instrumentation.po +type = PO +source_lang = en + +[python-36.howto--cporting] +trans.fr = .tx/howto/cporting.po +type = PO +source_lang = en + +[python-36.howto--ipaddress] +trans.fr = .tx/howto/ipaddress.po +type = PO +source_lang = en + +[python-36.howto--sorting] +trans.fr = .tx/howto/sorting.po +type = PO +source_lang = en + +[python-36.howto--functional] +trans.fr = .tx/howto/functional.po +type = PO +source_lang = en + +[python-36.howto--logging] +trans.fr = .tx/howto/logging.po +type = PO +source_lang = en + +[python-36.howto--regex] +trans.fr = .tx/howto/regex.po +type = PO +source_lang = en + +[python-36.howto--descriptor] +trans.fr = .tx/howto/descriptor.po +type = PO +source_lang = en + +[python-36.install--index] +trans.fr = .tx/install/index.po +type = PO +source_lang = en + +[python-36.reference--simple_stmts] +trans.fr = .tx/reference/simple_stmts.po +type = PO +source_lang = en + +[python-36.reference--expressions] +trans.fr = .tx/reference/expressions.po +type = PO +source_lang = en + +[python-36.reference--compound_stmts] +trans.fr = .tx/reference/compound_stmts.po +type = PO +source_lang = en + +[python-36.reference--introduction] +trans.fr = .tx/reference/introduction.po +type = PO +source_lang = en + +[python-36.reference--import] +trans.fr = .tx/reference/import.po +type = PO +source_lang = en + +[python-36.reference--grammar] +trans.fr = .tx/reference/grammar.po +type = PO +source_lang = en + +[python-36.reference--datamodel] +trans.fr = .tx/reference/datamodel.po +type = PO +source_lang = en + +[python-36.reference--index] +trans.fr = .tx/reference/index.po +type = PO +source_lang = en + +[python-36.reference--toplevel_components] +trans.fr = .tx/reference/toplevel_components.po +type = PO +source_lang = en + +[python-36.reference--lexical_analysis] +trans.fr = .tx/reference/lexical_analysis.po +type = PO +source_lang = en + +[python-36.reference--executionmodel] +trans.fr = .tx/reference/executionmodel.po +type = PO +source_lang = en + +[python-36.whatsnew--2_6] +trans.fr = .tx/whatsnew/2.6.po +type = PO +source_lang = en + +[python-36.whatsnew--2_3] +trans.fr = .tx/whatsnew/2.3.po +type = PO +source_lang = en + +[python-36.whatsnew--changelog] +trans.fr = .tx/whatsnew/changelog.po +type = PO +source_lang = en + +[python-36.whatsnew--2_2] +trans.fr = .tx/whatsnew/2.2.po +type = PO +source_lang = en + +[python-36.whatsnew--3_3] +trans.fr = .tx/whatsnew/3.3.po +type = PO +source_lang = en + +[python-36.whatsnew--3_4] +trans.fr = .tx/whatsnew/3.4.po +type = PO +source_lang = en + +[python-36.whatsnew--3_2] +trans.fr = .tx/whatsnew/3.2.po +type = PO +source_lang = en + +[python-36.whatsnew--2_7] +trans.fr = .tx/whatsnew/2.7.po +type = PO +source_lang = en + +[python-36.whatsnew--3_1] +trans.fr = .tx/whatsnew/3.1.po +type = PO +source_lang = en + +[python-36.whatsnew--3_0] +trans.fr = .tx/whatsnew/3.0.po +type = PO +source_lang = en + +[python-36.whatsnew--index] +trans.fr = .tx/whatsnew/index.po +type = PO +source_lang = en + +[python-36.whatsnew--2_0] +trans.fr = .tx/whatsnew/2.0.po +type = PO +source_lang = en + +[python-36.whatsnew--2_4] +trans.fr = .tx/whatsnew/2.4.po +type = PO +source_lang = en + +[python-36.whatsnew--3_5] +trans.fr = .tx/whatsnew/3.5.po +type = PO +source_lang = en + +[python-36.whatsnew--2_5] +trans.fr = .tx/whatsnew/2.5.po +type = PO +source_lang = en + +[python-36.whatsnew--2_1] +trans.fr = .tx/whatsnew/2.1.po +type = PO +source_lang = en + +[python-36.whatsnew--3_6] +trans.fr = .tx/whatsnew/3.6.po +type = PO +source_lang = en + +[python-36.tutorial--modules] +trans.fr = .tx/tutorial/modules.po +type = PO +source_lang = en + +[python-36.tutorial--stdlib2] +trans.fr = .tx/tutorial/stdlib2.po +type = PO +source_lang = en + +[python-36.tutorial--whatnow] +trans.fr = .tx/tutorial/whatnow.po +type = PO +source_lang = en + +[python-36.tutorial--floatingpoint] +trans.fr = .tx/tutorial/floatingpoint.po +type = PO +source_lang = en + +[python-36.tutorial--inputoutput] +trans.fr = .tx/tutorial/inputoutput.po +type = PO +source_lang = en + +[python-36.tutorial--classes] +trans.fr = .tx/tutorial/classes.po +type = PO +source_lang = en + +[python-36.tutorial--appendix] +trans.fr = .tx/tutorial/appendix.po +type = PO +source_lang = en + +[python-36.tutorial--interactive] +trans.fr = .tx/tutorial/interactive.po +type = PO +source_lang = en + +[python-36.tutorial--venv] +trans.fr = .tx/tutorial/venv.po +type = PO +source_lang = en + +[python-36.tutorial--introduction] +trans.fr = .tx/tutorial/introduction.po +type = PO +source_lang = en + +[python-36.tutorial--index] +trans.fr = .tx/tutorial/index.po +type = PO +source_lang = en + +[python-36.tutorial--controlflow] +trans.fr = .tx/tutorial/controlflow.po +type = PO +source_lang = en + +[python-36.tutorial--appetite] +trans.fr = .tx/tutorial/appetite.po +type = PO +source_lang = en + +[python-36.tutorial--errors] +trans.fr = .tx/tutorial/errors.po +type = PO +source_lang = en + +[python-36.tutorial--interpreter] +trans.fr = .tx/tutorial/interpreter.po +type = PO +source_lang = en + +[python-36.tutorial--datastructures] +trans.fr = .tx/tutorial/datastructures.po +type = PO +source_lang = en + +[python-36.tutorial--stdlib] +trans.fr = .tx/tutorial/stdlib.po +type = PO +source_lang = en + +[python-36.extending--building] +trans.fr = .tx/extending/building.po +type = PO +source_lang = en + +[python-36.extending--extending] +trans.fr = .tx/extending/extending.po +type = PO +source_lang = en + +[python-36.extending--windows] +trans.fr = .tx/extending/windows.po +type = PO +source_lang = en + +[python-36.extending--index] +trans.fr = .tx/extending/index.po +type = PO +source_lang = en + +[python-36.extending--embedding] +trans.fr = .tx/extending/embedding.po +type = PO +source_lang = en + +[python-36.extending--newtypes] +trans.fr = .tx/extending/newtypes.po +type = PO +source_lang = en + +[python-36.installing--index] +trans.fr = .tx/installing/index.po +type = PO +source_lang = en + +[python-36.c-api--conversion] +trans.fr = .tx/c-api/conversion.po +type = PO +source_lang = en + +[python-36.c-api--datetime] +trans.fr = .tx/c-api/datetime.po +type = PO +source_lang = en + +[python-36.c-api--memory] +trans.fr = .tx/c-api/memory.po +type = PO +source_lang = en + +[python-36.c-api--coro] +trans.fr = .tx/c-api/coro.po +type = PO +source_lang = en + +[python-36.c-api--file] +trans.fr = .tx/c-api/file.po +type = PO +source_lang = en + +[python-36.c-api--object] +trans.fr = .tx/c-api/object.po +type = PO +source_lang = en + +[python-36.c-api--capsule] +trans.fr = .tx/c-api/capsule.po +type = PO +source_lang = en + +[python-36.c-api--function] +trans.fr = .tx/c-api/function.po +type = PO +source_lang = en + +[python-36.c-api--refcounting] +trans.fr = .tx/c-api/refcounting.po +type = PO +source_lang = en + +[python-36.c-api--cell] +trans.fr = .tx/c-api/cell.po +type = PO +source_lang = en + +[python-36.c-api--none] +trans.fr = .tx/c-api/none.po +type = PO +source_lang = en + +[python-36.c-api--allocation] +trans.fr = .tx/c-api/allocation.po +type = PO +source_lang = en + +[python-36.c-api--intro] +trans.fr = .tx/c-api/intro.po +type = PO +source_lang = en + +[python-36.c-api--number] +trans.fr = .tx/c-api/number.po +type = PO +source_lang = en + +[python-36.c-api--float] +trans.fr = .tx/c-api/float.po +type = PO +source_lang = en + +[python-36.c-api--list] +trans.fr = .tx/c-api/list.po +type = PO +source_lang = en + +[python-36.c-api--memoryview] +trans.fr = .tx/c-api/memoryview.po +type = PO +source_lang = en + +[python-36.c-api--structures] +trans.fr = .tx/c-api/structures.po +type = PO +source_lang = en + +[python-36.c-api--mapping] +trans.fr = .tx/c-api/mapping.po +type = PO +source_lang = en + +[python-36.c-api--iterator] +trans.fr = .tx/c-api/iterator.po +type = PO +source_lang = en + +[python-36.c-api--abstract] +trans.fr = .tx/c-api/abstract.po +type = PO +source_lang = en + +[python-36.c-api--gen] +trans.fr = .tx/c-api/gen.po +type = PO +source_lang = en + +[python-36.c-api--arg] +trans.fr = .tx/c-api/arg.po +type = PO +source_lang = en + +[python-36.c-api--method] +trans.fr = .tx/c-api/method.po +type = PO +source_lang = en + +[python-36.c-api--sequence] +trans.fr = .tx/c-api/sequence.po +type = PO +source_lang = en + +[python-36.c-api--marshal] +trans.fr = .tx/c-api/marshal.po +type = PO +source_lang = en + +[python-36.c-api--import] +trans.fr = .tx/c-api/import.po +type = PO +source_lang = en + +[python-36.c-api--weakref] +trans.fr = .tx/c-api/weakref.po +type = PO +source_lang = en + +[python-36.c-api--dict] +trans.fr = .tx/c-api/dict.po +type = PO +source_lang = en + +[python-36.c-api--buffer] +trans.fr = .tx/c-api/buffer.po +type = PO +source_lang = en + +[python-36.c-api--code] +trans.fr = .tx/c-api/code.po +type = PO +source_lang = en + +[python-36.c-api--index] +trans.fr = .tx/c-api/index.po +type = PO +source_lang = en + +[python-36.c-api--concrete] +trans.fr = .tx/c-api/concrete.po +type = PO +source_lang = en + +[python-36.c-api--unicode] +trans.fr = .tx/c-api/unicode.po +type = PO +source_lang = en + +[python-36.c-api--bytes] +trans.fr = .tx/c-api/bytes.po +type = PO +source_lang = en + +[python-36.c-api--init] +trans.fr = .tx/c-api/init.po +type = PO +source_lang = en + +[python-36.c-api--bool] +trans.fr = .tx/c-api/bool.po +type = PO +source_lang = en + +[python-36.c-api--reflection] +trans.fr = .tx/c-api/reflection.po +type = PO +source_lang = en + +[python-36.c-api--gcsupport] +trans.fr = .tx/c-api/gcsupport.po +type = PO +source_lang = en + +[python-36.c-api--module] +trans.fr = .tx/c-api/module.po +type = PO +source_lang = en + +[python-36.c-api--veryhigh] +trans.fr = .tx/c-api/veryhigh.po +type = PO +source_lang = en + +[python-36.c-api--exceptions] +trans.fr = .tx/c-api/exceptions.po +type = PO +source_lang = en + +[python-36.c-api--objimpl] +trans.fr = .tx/c-api/objimpl.po +type = PO +source_lang = en + +[python-36.c-api--type] +trans.fr = .tx/c-api/type.po +type = PO +source_lang = en + +[python-36.c-api--set] +trans.fr = .tx/c-api/set.po +type = PO +source_lang = en + +[python-36.c-api--codec] +trans.fr = .tx/c-api/codec.po +type = PO +source_lang = en + +[python-36.c-api--typeobj] +trans.fr = .tx/c-api/typeobj.po +type = PO +source_lang = en + +[python-36.c-api--sys] +trans.fr = .tx/c-api/sys.po +type = PO +source_lang = en + +[python-36.c-api--bytearray] +trans.fr = .tx/c-api/bytearray.po +type = PO +source_lang = en + +[python-36.c-api--tuple] +trans.fr = .tx/c-api/tuple.po +type = PO +source_lang = en + +[python-36.c-api--apiabiversion] +trans.fr = .tx/c-api/apiabiversion.po +type = PO +source_lang = en + +[python-36.c-api--stable] +trans.fr = .tx/c-api/stable.po +type = PO +source_lang = en + +[python-36.c-api--objbuffer] +trans.fr = .tx/c-api/objbuffer.po +type = PO +source_lang = en + +[python-36.c-api--slice] +trans.fr = .tx/c-api/slice.po +type = PO +source_lang = en + +[python-36.c-api--long] +trans.fr = .tx/c-api/long.po +type = PO +source_lang = en + +[python-36.c-api--iter] +trans.fr = .tx/c-api/iter.po +type = PO +source_lang = en + +[python-36.c-api--utilities] +trans.fr = .tx/c-api/utilities.po +type = PO +source_lang = en + +[python-36.c-api--complex] +trans.fr = .tx/c-api/complex.po +type = PO +source_lang = en + +[python-36.c-api--descriptor] +trans.fr = .tx/c-api/descriptor.po +type = PO +source_lang = en + diff --git a/README.rst b/README.rst index 71b6af5b..d81f111c 100644 --- a/README.rst +++ b/README.rst @@ -210,30 +210,37 @@ after ensuring ``~/.local/bin/`` is in your ``PATH``. git config diff.podiff.textconv podiff + Maintenance ----------- -Find fuzzy strings: +All those snippets are to run from the root of a ``python-docs-fr`` +clone, and some expect to find an up-to-date CPython clone near to it, +like:: -.. code-block:: bash + ~/ + ├── python-docs-fr/ + └── cpython/ - find -name '*.po' | xargs -L1 msgattrib --only-fuzzy --no-obsolete +To clone CPython you may use:: + + git clone --depth 1 --no-single-branch https://github.com/python/cpython.git + +This avoids to download the whole history (not usefull to build +documentation) but still fetches all branches. -Merge pot files from cpython doc: +Merge pot files from CPython +'''''''''''''''''''''''''''' .. code-block:: bash VERSION="$(git describe --contains --all HEAD)" - git clone --depth 1 --branch $VERSION https://github.com/python/cpython.git /tmp/cpython/ - (cd /tmp/cpython/ && sphinx-build -Q -b gettext -D gettext_compact=0 Doc pot/) - POT_PATH="/tmp/cpython/pot/" - PO_PATH="./" - - find "$POT_PATH" -name '*.pot' | + (cd ../cpython; git checkout $VERSION && git pull --ff-only && sphinx-build -Q -b gettext -D gettext_compact=0 Doc pot/) + find ../cpython/pot/ -name '*.pot' | while read -r POT do - PO="$PO_PATH/$(echo "$POT" | sed "s#$POT_PATH##; s#\.pot\$#.po#")" + PO="./$(echo "$POT" | sed "s#../cpython/pot/##; s#\.pot\$#.po#")" mkdir -p "$(dirname "$PO")" if [ -f "$PO" ] then @@ -243,12 +250,40 @@ Merge pot files from cpython doc: fi done -Run a test build locally: -- Create a ``locales/fr/`` directory. -- Put your ``python-docs-fr`` clone (or a symlink) in it as ``LC_MESSAGES`` -- Nagigate to a ``cpython`` clone, in the ``Docs/`` directory +Find fuzzy strings +'''''''''''''''''' -and run:: +.. code-block:: bash - make SPHINXOPTS='-D locale_dirs=/PATH/TO/locales/ -D language=fr -D gettext_compact=0' autobuild-dev-html + find -name '*.po' | xargs -L1 msgattrib --only-fuzzy --no-obsolete + + +Run a test build locally +'''''''''''''''''''''''' + +.. code-block:: bash + + mkdir -p /tmp/$USER/locales/fr + ln -nfs $(readlink -f .) /tmp/$USER/locales/fr/LC_MESSAGES + make -C ../cpython/Docs SPHINXOPTS="-D locale_dirs=/tmp/$USER/locales/ -D language=fr -D gettext_compact=0" autobuild-dev-html + + +Synchronize translation with Transifex +'''''''''''''''''''''''''''''''''''''' + +You'll need the ``transifex-client``, ``pomerge``, and ``poindent`` +from Pypi, and you'll need to configure ``tx`` via ``tx init``, and then: + +.. code-block:: bash + + tx pull + pomerge --from .tx/*.po .tx/**/*.po --to *.po **/*.po + poindent --modified + +Now you should review and commit the pull, then push: + +.. code-block:: bash + + pomerge --from *.po **/*.po --to .tx/*.po .tx/**/*.po + tx push -t