{ "info": { "author": "Julien Palard", "author_email": "julien@palard.fr", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6" ], "description": "=======\npomerge\n=======\n\n\n.. image:: https://img.shields.io/pypi/v/pomerge.svg\n :target: https://pypi.python.org/pypi/pomerge\n\nScript to merge translations from a set of po files to other set of po files.\n\n``pomerge`` does not care about ``.po`` file names, a translation\nfrom one file can land in another as long as their ``msgid`` are identical.\n\n\nUsage\n-----\n\nBasic usage is ``pomerge --from source.po --to dest.po``, see\n``pomerge --help`` for more.\n\n``--from`` and ``--to`` are optional, when not given, pomerge will use\na temporay file. So::\n\n pomerge --from a/**/*.po --to b/**/*.po\n\nis strictly equivalent to::\n\n pomerge --from a/**/*.po\n pomerge --to b/**/*.po\n\n\nThe wrapping of your ``.po`` files is not kept by ``pomerge``,\ncompletly destroying the readability of git diffs, to fix this I use\n`poindent `_.\n\n\nRecipes\n-------\n\nPropagating translations from a directory to another\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nWhen you're having two directories with ``.po`` files and want to copy\ntranslations (``msgstr``) from one to another, even if the hiearchy is\nnot the same, run::\n\n pomerge --from ../contributors/**/*.po --to **/*.po\n\nIn this case, two options can be useful:\n\n- ``--no-overwrite``: Avoid touching already translated strings.\n- ``--mark-as-fuzzy``: Mark all new translations as fuzzy, usefull\n when you know you'll have to proofread the translations.\n\n\nPropagating known translations\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nIn big projects, there may be multiple occurrences of the same string\nin different ``.po`` files, to automatically fill blanks with already\ntranslated ones, use::\n\n pomerge --no-overwrite --from **/*.po --to **/*.po\n\nThe ``--no-overwrite`` is usefull if the same ``msgstr`` has already\nbeen translated twice, but differently (depending on the context\nmaybe), the ``--no-overwrite`` will prevent one to be overwritten by\nthe other.\n\n\nSynchronizing translation between git branches\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nIf you're having multiple branches of your documentation to track\nmultiple branches of your project, you may want to synchronize known\ntranslations between branches, you can do it like this::\n\n git checkout master # The place where your contributors work\n pomerge --from **/*.po # Make pomerge \"learn\" this set of translations\n git checkout old_version # The translation for an old branch\n pomerge --to **/*.po\n\nThis way you can still make old translation progress a bit while\nfocusing only on the current master.\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/JulienPalard/pomerge", "keywords": "pomerge", "license": "MIT license", "maintainer": "", "maintainer_email": "", "name": "pomerge", "package_url": "https://pypi.org/project/pomerge/", "platform": "", "project_url": "https://pypi.org/project/pomerge/", "project_urls": { "Homepage": "https://github.com/JulienPalard/pomerge" }, "release_url": "https://pypi.org/project/pomerge/0.1.4/", "requires_dist": [ "tqdm", "polib", "pylint ; extra == 'dev'", "flake8 ; extra == 'dev'", "black ; extra == 'dev'", "mypy ; extra == 'dev'" ], "requires_python": "", "summary": "Merge known translations between .po files.", "version": "0.1.4" }, "last_serial": 5816335, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "8b395aed022f5bb160f769d39903c3df", "sha256": "2bc6cb26d731188333b68dadcdbd5f6fda9085b16e8f31fd58eef0ded530e6e2" }, "downloads": -1, "filename": "pomerge-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "8b395aed022f5bb160f769d39903c3df", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4659, "upload_time": "2017-08-11T17:54:57", "url": "https://files.pythonhosted.org/packages/2c/52/9bb58bd3c11f7bfcf2ac8694812bf67fe6774f52c77cfbb5567745d5d021/pomerge-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4da344dfd7443fac0790abb4cd265834", "sha256": "5ae5c124288eda9ab50e70609137929e33ccad26d6489a581ea18e0b404a9aa6" }, "downloads": -1, "filename": "pomerge-0.1.0.tar.gz", "has_sig": false, "md5_digest": "4da344dfd7443fac0790abb4cd265834", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2937, "upload_time": "2017-08-11T17:54:59", "url": "https://files.pythonhosted.org/packages/95/76/e2fb35153e3802421340aed034c184d17d1b5026c5bd62bd11f0a97d9be1/pomerge-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "eae5d99ec1f611723ffe3304bf132245", "sha256": "3911c448ed3a853637deb82cf7d5466452a10cdebf18ac8d86ec6e3cce07af66" }, "downloads": -1, "filename": "pomerge-0.1.1.tar.gz", "has_sig": false, "md5_digest": "eae5d99ec1f611723ffe3304bf132245", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3235, "upload_time": "2017-10-23T20:40:24", "url": "https://files.pythonhosted.org/packages/3c/67/b220a8b9b5ca8bbe9ca69317a05fea511b3c2eec0fc125b26eaff2b1785b/pomerge-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "61cddd8039730b672f4110827b0a754f", "sha256": "58d16f7954bbdbb7e80675eefea91b54b45ea69b92ef7697b9d16a8638baa852" }, "downloads": -1, "filename": "pomerge-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "61cddd8039730b672f4110827b0a754f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3653, "upload_time": "2018-07-03T08:29:57", "url": "https://files.pythonhosted.org/packages/92/02/d4f14124abc16321453d10dd228aad41c057b7b05caf17a1027b52bbb116/pomerge-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c8cf075f90b6cf2c040cbf1d9a7ddddc", "sha256": "f2f425887e4990da78e3523865c61814d32cc192aa9a50d10d597c7ce8c8f85a" }, "downloads": -1, "filename": "pomerge-0.1.2.tar.gz", "has_sig": false, "md5_digest": "c8cf075f90b6cf2c040cbf1d9a7ddddc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3265, "upload_time": "2018-07-03T08:29:59", "url": "https://files.pythonhosted.org/packages/11/6b/f3caa9108200c88046fd908d4d813d752b8fef269618707af24b9e3e5c05/pomerge-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "cd0b564ad58b611523282c92d3a27754", "sha256": "35e3f6c64a7a409b25b2bf3060bfb669aea09bb25d8b3a573fceec0973b0f60c" }, "downloads": -1, "filename": "pomerge-0.1.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "cd0b564ad58b611523282c92d3a27754", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4409, "upload_time": "2019-05-28T13:04:13", "url": "https://files.pythonhosted.org/packages/77/b1/e963b5a5f4b4af526b098621baa424fc3077daa67d5188c59ff276d0439c/pomerge-0.1.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "294563db98c120325f552222a7cd4c54", "sha256": "6c1399a322c4bace3afe067cc621b7e6f7b997574593fb1b6a91844fcd26992a" }, "downloads": -1, "filename": "pomerge-0.1.3.tar.gz", "has_sig": false, "md5_digest": "294563db98c120325f552222a7cd4c54", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4251, "upload_time": "2019-05-28T13:04:14", "url": "https://files.pythonhosted.org/packages/5c/ef/f23ef1877d425d1385e08462b5954da55828b73970c00013ec15bf18b611/pomerge-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "2717a776b7c4bf7a0cc69793d7b3b131", "sha256": "bb652fb1e13ae9ba536674df5490c488ecb75ba6a636f6c43394cb2952c96226" }, "downloads": -1, "filename": "pomerge-0.1.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2717a776b7c4bf7a0cc69793d7b3b131", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4457, "upload_time": "2019-09-11T18:37:09", "url": "https://files.pythonhosted.org/packages/f6/57/25f7ff330fc9e08d0770d91fbcb0f183f29be488a53c8aaefe2d8dfaa172/pomerge-0.1.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "692a78a76cc6a34642902666b6b25e43", "sha256": "03da3138f2cbfb4e48fafdd38a909823acc86baa39fff8efe05ec0548568e5ed" }, "downloads": -1, "filename": "pomerge-0.1.4.tar.gz", "has_sig": false, "md5_digest": "692a78a76cc6a34642902666b6b25e43", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4299, "upload_time": "2019-09-11T18:37:11", "url": "https://files.pythonhosted.org/packages/2c/88/2d8e9b7b474fa34cbb7639577e964e0e0e471a28eee850d02bcb565a062e/pomerge-0.1.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "2717a776b7c4bf7a0cc69793d7b3b131", "sha256": "bb652fb1e13ae9ba536674df5490c488ecb75ba6a636f6c43394cb2952c96226" }, "downloads": -1, "filename": "pomerge-0.1.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2717a776b7c4bf7a0cc69793d7b3b131", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4457, "upload_time": "2019-09-11T18:37:09", "url": "https://files.pythonhosted.org/packages/f6/57/25f7ff330fc9e08d0770d91fbcb0f183f29be488a53c8aaefe2d8dfaa172/pomerge-0.1.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "692a78a76cc6a34642902666b6b25e43", "sha256": "03da3138f2cbfb4e48fafdd38a909823acc86baa39fff8efe05ec0548568e5ed" }, "downloads": -1, "filename": "pomerge-0.1.4.tar.gz", "has_sig": false, "md5_digest": "692a78a76cc6a34642902666b6b25e43", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4299, "upload_time": "2019-09-11T18:37:11", "url": "https://files.pythonhosted.org/packages/2c/88/2d8e9b7b474fa34cbb7639577e964e0e0e471a28eee850d02bcb565a062e/pomerge-0.1.4.tar.gz" } ] }