)]}'
{".zuul.yaml":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e34dd2b50c6411c999c900f1d9e43fa9ef7fc66d","unresolved":true,"context_lines":[{"line_number":57,"context_line":"    check:"},{"line_number":58,"context_line":"      jobs:"},{"line_number":59,"context_line":"        - watcher-dashboard-integration-tests-playwright"},{"line_number":60,"context_line":"        - watcher-dashboard-tox-translations"},{"line_number":61,"context_line":"    gate:"},{"line_number":62,"context_line":"      jobs:"},{"line_number":63,"context_line":"        - watcher-dashboard-integration-tests-playwright"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"fc2be3af_98e9734a","line":60,"updated":"2026-08-06 14:11:32.000000000","message":"so we normally dont really test translation is  most projects\nbut i guess its fine im not sure we really need to do it on every patch however\n\nis this the norm for horizon plugins?\n\ni think doign this weekly woudl be enough.\n\nnova and watcher for exampel have no transaltion testing.","commit_id":"0cb4fde6ca24874eb43cbbf607fcaf7db1dd9866"}],"babel-django.cfg":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e34dd2b50c6411c999c900f1d9e43fa9ef7fc66d","unresolved":true,"context_lines":[{"line_number":1,"context_line":"[python: **.py]"},{"line_number":2,"context_line":"[django: **/templates/**.html]"},{"line_number":3,"context_line":"[django: **/templates/**.csv]"},{"line_number":4,"context_line":"[extractors]"},{"line_number":5,"context_line":"django \u003d horizon.utils.babel_extract_django:extract_django"}],"source_content_type":"text/x-ttcn-cfg","patch_set":4,"id":"2565b9ff_00d62fef","line":3,"range":{"start_line":1,"start_character":0,"end_line":3,"end_character":29},"updated":"2026-08-06 14:11:32.000000000","message":"why chagne this form watcher_dashboard/ ?\n\nwe dont want to translate python file under tools or docs ectra\n\nwe also dont have csv file in the repo","commit_id":"0cb4fde6ca24874eb43cbbf607fcaf7db1dd9866"}],"babel-djangojs.cfg":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e34dd2b50c6411c999c900f1d9e43fa9ef7fc66d","unresolved":true,"context_lines":[{"line_number":1,"context_line":"[javascript: **.js]"},{"line_number":2,"context_line":"[angular: **/static/**.html]"},{"line_number":3,"context_line":"[extractors]"},{"line_number":4,"context_line":"angular \u003d horizon.utils.babel_extract_angular:extract_angular"}],"source_content_type":"text/x-ttcn-cfg","patch_set":4,"id":"046380fa_54651462","line":2,"range":{"start_line":2,"start_character":0,"end_line":2,"end_character":28},"updated":"2026-08-06 14:11:32.000000000","message":"we do not and will not have angular compontes so this line can just be remvoed","commit_id":"0cb4fde6ca24874eb43cbbf607fcaf7db1dd9866"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e34dd2b50c6411c999c900f1d9e43fa9ef7fc66d","unresolved":true,"context_lines":[{"line_number":1,"context_line":"[javascript: **.js]"},{"line_number":2,"context_line":"[angular: **/static/**.html]"},{"line_number":3,"context_line":"[extractors]"},{"line_number":4,"context_line":"angular \u003d horizon.utils.babel_extract_angular:extract_angular"}],"source_content_type":"text/x-ttcn-cfg","patch_set":4,"id":"360fa850_9facd376","line":4,"range":{"start_line":3,"start_character":1,"end_line":4,"end_character":61},"updated":"2026-08-06 14:11:32.000000000","message":"and this","commit_id":"0cb4fde6ca24874eb43cbbf607fcaf7db1dd9866"}],"bindep.txt":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e34dd2b50c6411c999c900f1d9e43fa9ef7fc66d","unresolved":true,"context_lines":[{"line_number":1,"context_line":"gettext"}],"source_content_type":"text/plain","patch_set":4,"id":"97541326_405f79b1","line":1,"updated":"2026-08-06 14:11:32.000000000","message":"this is not a runtime dep so this is not quite correct\n\n\n```suggestion\n# gettext is needed by doc builds only. For transition,\n# have them in both doc and test.\ngettext [doc test]\n```\n\nhttps://github.com/openstack/nova/blob/master/bindep.txt#L13C1-L13C19","commit_id":"0cb4fde6ca24874eb43cbbf607fcaf7db1dd9866"}],"tox.ini":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e34dd2b50c6411c999c900f1d9e43fa9ef7fc66d","unresolved":true,"context_lines":[{"line_number":91,"context_line":"  # For local runs: python -m playwright install webkit"},{"line_number":92,"context_line":"  stestr run {posargs}"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"[testenv:translations]"},{"line_number":95,"context_line":"allowlist_externals \u003d cp"},{"line_number":96,"context_line":"commands \u003d"},{"line_number":97,"context_line":"    {envpython} {toxinidir}/manage.py extract_messages --module watcher_dashboard -v 0 --traceback"}],"source_content_type":"text/x-properties","patch_set":4,"id":"291bcadc_2f650c44","line":94,"updated":"2026-08-06 14:11:32.000000000","message":"the pti does not say what this shoudl be called but  i think this is fine\n\nhttps://github.com/openstack/governance/blob/master/reference/pti/python.rst#translations","commit_id":"0cb4fde6ca24874eb43cbbf607fcaf7db1dd9866"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e34dd2b50c6411c999c900f1d9e43fa9ef7fc66d","unresolved":true,"context_lines":[{"line_number":96,"context_line":"commands \u003d"},{"line_number":97,"context_line":"    {envpython} {toxinidir}/manage.py extract_messages --module watcher_dashboard -v 0 --traceback"},{"line_number":98,"context_line":"    {envpython} {toxinidir}/manage.py compilemessages -v 0 --traceback"},{"line_number":99,"context_line":"    cp {toxinidir}/watcher_dashboard/locale/django.pot {toxinidir}/watcher_dashboard/locale/djangojs.pot {toxworkdir}/translations/log/"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"[testenv:venv]"},{"line_number":102,"context_line":"commands \u003d {posargs}"}],"source_content_type":"text/x-properties","patch_set":4,"id":"f4fb58ca_b2712755","line":99,"range":{"start_line":99,"start_character":3,"end_line":99,"end_character":135},"updated":"2026-08-06 14:11:32.000000000","message":"the pti says\n```\nTo support translations processing, projects should have a valid babel config. There should be a locale package inside of the top project module, and in that directory should be the $project.pot file. For instance, the .pot file for nova should be found at nova/locale/nova.pot. Babel commands should be configured out output their .mo files in to $project/locale as well.\n````\nSo we need to check fi the .mo files are produced and copied as well","commit_id":"0cb4fde6ca24874eb43cbbf607fcaf7db1dd9866"}]}
