)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":34680,"name":"Numan Menekşe","email":"numan.menekse@tubitak.gov.tr","username":"numanmenekse"},"change_message_id":"6f8b6979d14769be923d8cbe1d23cbaa20fdb8ad","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"cd352a4f_260e35b8","updated":"2023-09-13 12:46:26.000000000","message":"Ready for live.","commit_id":"0d75c8f1edd31969e714542ea9ef2fe191a856e4"},{"author":{"_account_id":30434,"name":"Jingwei.Zhang","email":"zhang.jingwei@algoblu.com","username":"jwzhang"},"change_message_id":"0cd823d5b8ca6420c90c3af4986be43c9a62a15a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"dd0a9027_0b88b72a","updated":"2023-11-29 00:59:13.000000000","message":"please add a releasenote:)","commit_id":"e2a2a3ad84cdc498de17363968cd8d4c610e2217"},{"author":{"_account_id":34680,"name":"Numan Menekşe","email":"numan.menekse@tubitak.gov.tr","username":"numanmenekse"},"change_message_id":"1239aa50805682bfbd1cfeeae4d6ccb38c5882e8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"cb0d22eb_2e53438d","in_reply_to":"dd0a9027_0b88b72a","updated":"2023-12-04 06:04:58.000000000","message":"Added. Thanks :)","commit_id":"e2a2a3ad84cdc498de17363968cd8d4c610e2217"}],"src/core/i18n.js":[{"author":{"_account_id":34680,"name":"Numan Menekşe","email":"numan.menekse@tubitak.gov.tr","username":"numanmenekse"},"change_message_id":"e6a0a43733189e7a6f9f203723aec623e9fe762a","unresolved":true,"context_lines":[{"line_number":129,"context_line":"      },"},{"line_number":130,"context_line":"    });"},{"line_number":131,"context_line":"  }"},{"line_number":132,"context_line":"  else if (lang \u003d\u003d\u003d \u0027tr\u0027) {"},{"line_number":133,"context_line":"    moment.locale(\u0027tr\u0027, {"},{"line_number":134,"context_line":"      relativeTime: {"},{"line_number":135,"context_line":"        s: \u00271 saniye\u0027,"}],"source_content_type":"text/javascript","patch_set":2,"id":"9e5fa790_257b6e4c","line":132,"updated":"2023-08-08 08:26:51.000000000","message":"Thanks for the patch at commit 890708. I have applied it but even if we set the locale to Turkish, relativeTime stays in \u0027zh\u0027 without adding this code block. For example, Created At column in the table at \"/network/networks\".","commit_id":"a0ba1d764b7cd5ec414c6d0145bd12c3fb53deb0"},{"author":{"_account_id":34680,"name":"Numan Menekşe","email":"numan.menekse@tubitak.gov.tr","username":"numanmenekse"},"change_message_id":"0163a1c6ae0d8736902a98a49866c6496cd4405b","unresolved":true,"context_lines":[{"line_number":129,"context_line":"      },"},{"line_number":130,"context_line":"    });"},{"line_number":131,"context_line":"  }"},{"line_number":132,"context_line":"  else if (lang \u003d\u003d\u003d \u0027tr\u0027) {"},{"line_number":133,"context_line":"    moment.locale(\u0027tr\u0027, {"},{"line_number":134,"context_line":"      relativeTime: {"},{"line_number":135,"context_line":"        s: \u00271 saniye\u0027,"}],"source_content_type":"text/javascript","patch_set":2,"id":"d18b21c6_979f9f72","line":132,"in_reply_to":"4a4a3bb2_26e2bade","updated":"2023-08-14 06:37:07.000000000","message":"Thanks for the patch again. It works, but this time the calendar (DatePicker, RangePicker) stays in English if we don\u0027t override those for Turkish the same way at this location.","commit_id":"a0ba1d764b7cd5ec414c6d0145bd12c3fb53deb0"},{"author":{"_account_id":34680,"name":"Numan Menekşe","email":"numan.menekse@tubitak.gov.tr","username":"numanmenekse"},"change_message_id":"6f8b6979d14769be923d8cbe1d23cbaa20fdb8ad","unresolved":false,"context_lines":[{"line_number":129,"context_line":"      },"},{"line_number":130,"context_line":"    });"},{"line_number":131,"context_line":"  }"},{"line_number":132,"context_line":"  else if (lang \u003d\u003d\u003d \u0027tr\u0027) {"},{"line_number":133,"context_line":"    moment.locale(\u0027tr\u0027, {"},{"line_number":134,"context_line":"      relativeTime: {"},{"line_number":135,"context_line":"        s: \u00271 saniye\u0027,"}],"source_content_type":"text/javascript","patch_set":2,"id":"9900d1ef_86a14cb4","line":132,"in_reply_to":"5386cc79_2d988706","updated":"2023-09-13 12:46:26.000000000","message":"Done","commit_id":"a0ba1d764b7cd5ec414c6d0145bd12c3fb53deb0"},{"author":{"_account_id":30434,"name":"Jingwei.Zhang","email":"zhang.jingwei@algoblu.com","username":"jwzhang"},"change_message_id":"d5a4e817d0fc20172f08447ff8a12730d74ac4e0","unresolved":true,"context_lines":[{"line_number":129,"context_line":"      },"},{"line_number":130,"context_line":"    });"},{"line_number":131,"context_line":"  }"},{"line_number":132,"context_line":"  else if (lang \u003d\u003d\u003d \u0027tr\u0027) {"},{"line_number":133,"context_line":"    moment.locale(\u0027tr\u0027, {"},{"line_number":134,"context_line":"      relativeTime: {"},{"line_number":135,"context_line":"        s: \u00271 saniye\u0027,"}],"source_content_type":"text/javascript","patch_set":2,"id":"c4946705_80d2b560","line":132,"in_reply_to":"5386cc79_2d988706","updated":"2023-09-15 02:18:10.000000000","message":"I think the adjustments related to the dates are due to the lack of translate of the date by antd and moment, so we can hard code them in the i18n.js. When other languages are supported in the future, you can continue to add them to i18n.js. The local_config file is mainly used to adjust which languages to use.","commit_id":"a0ba1d764b7cd5ec414c6d0145bd12c3fb53deb0"},{"author":{"_account_id":30434,"name":"Jingwei.Zhang","email":"zhang.jingwei@algoblu.com","username":"jwzhang"},"change_message_id":"1f5eb641f30642d44607245fb422d8b684d2ee2f","unresolved":true,"context_lines":[{"line_number":129,"context_line":"      },"},{"line_number":130,"context_line":"    });"},{"line_number":131,"context_line":"  }"},{"line_number":132,"context_line":"  else if (lang \u003d\u003d\u003d \u0027tr\u0027) {"},{"line_number":133,"context_line":"    moment.locale(\u0027tr\u0027, {"},{"line_number":134,"context_line":"      relativeTime: {"},{"line_number":135,"context_line":"        s: \u00271 saniye\u0027,"}],"source_content_type":"text/javascript","patch_set":2,"id":"4a4a3bb2_26e2bade","line":132,"in_reply_to":"9e5fa790_257b6e4c","updated":"2023-08-11 08:18:16.000000000","message":"YES! I had tried, and had the same thing!\n\nI commit a new patch: 891149 (https://review.opendev.org/c/openstack/skyline-console/+/891149)\n\nI set the local_config.yaml below when I run yarn dev:\n\nglobalVariables:\n  defaultLanguage: tr-tr\n  supportLanguages: # use value in i18n.js\n    - en\n    - tr-tr","commit_id":"a0ba1d764b7cd5ec414c6d0145bd12c3fb53deb0"},{"author":{"_account_id":34680,"name":"Numan Menekşe","email":"numan.menekse@tubitak.gov.tr","username":"numanmenekse"},"change_message_id":"f9345c669f5ba7ca97cab062d6c526ecc3fc43e9","unresolved":true,"context_lines":[{"line_number":129,"context_line":"      },"},{"line_number":130,"context_line":"    });"},{"line_number":131,"context_line":"  }"},{"line_number":132,"context_line":"  else if (lang \u003d\u003d\u003d \u0027tr\u0027) {"},{"line_number":133,"context_line":"    moment.locale(\u0027tr\u0027, {"},{"line_number":134,"context_line":"      relativeTime: {"},{"line_number":135,"context_line":"        s: \u00271 saniye\u0027,"}],"source_content_type":"text/javascript","patch_set":2,"id":"5386cc79_2d988706","line":132,"in_reply_to":"b5858151_0f38b736","updated":"2023-09-04 08:04:50.000000000","message":"Yes, we can hard code those custom settings in i18n.js file and they work. However, it would be better if there was a better, dynamic solution similar to what you have provided with local_config.yaml on patch 891149. Since i18n.js is a core file, our changes in it might get lost or have a conflict while pulling the project for other changes.","commit_id":"a0ba1d764b7cd5ec414c6d0145bd12c3fb53deb0"},{"author":{"_account_id":30434,"name":"Jingwei.Zhang","email":"zhang.jingwei@algoblu.com","username":"jwzhang"},"change_message_id":"2ce5e6fd4cb16584a26cc218a710f03e75b72733","unresolved":true,"context_lines":[{"line_number":129,"context_line":"      },"},{"line_number":130,"context_line":"    });"},{"line_number":131,"context_line":"  }"},{"line_number":132,"context_line":"  else if (lang \u003d\u003d\u003d \u0027tr\u0027) {"},{"line_number":133,"context_line":"    moment.locale(\u0027tr\u0027, {"},{"line_number":134,"context_line":"      relativeTime: {"},{"line_number":135,"context_line":"        s: \u00271 saniye\u0027,"}],"source_content_type":"text/javascript","patch_set":2,"id":"b5858151_0f38b736","line":132,"in_reply_to":"d18b21c6_979f9f72","updated":"2023-08-18 01:40:37.000000000","message":"https://momentjscom.readthedocs.io/en/latest/moment/06-i18n/01-changing-locale/#/customization/\n\naccording to the doc, we can set custom months, monthsShort, weekdays, weekdaysShort and weekdaysMin to solution it.","commit_id":"a0ba1d764b7cd5ec414c6d0145bd12c3fb53deb0"},{"author":{"_account_id":30434,"name":"Jingwei.Zhang","email":"zhang.jingwei@algoblu.com","username":"jwzhang"},"change_message_id":"d5a4e817d0fc20172f08447ff8a12730d74ac4e0","unresolved":true,"context_lines":[{"line_number":38,"context_line":"  {"},{"line_number":39,"context_line":"    name: \u0027한글\u0027,"},{"line_number":40,"context_line":"    value: \u0027ko-kr\u0027,"},{"line_number":41,"context_line":"    shortName: \u0027kr\u0027,"},{"line_number":42,"context_line":"    icon: \u0027kr\u0027,"},{"line_number":43,"context_line":"  },"},{"line_number":44,"context_line":"  {"}],"source_content_type":"text/javascript","patch_set":3,"id":"5996cc12_3541f9e0","line":41,"range":{"start_line":41,"start_character":16,"end_line":41,"end_character":18},"updated":"2023-09-15 02:18:10.000000000","message":"from the file,\nhttps://github.com/openstack/horizon/blob/master/openstack_dashboard/settings.py\n\n```\nLANGUAGES \u003d (\n    (\u0027cs\u0027, \u0027Czech\u0027),\n    (\u0027de\u0027, \u0027German\u0027),\n    (\u0027en\u0027, \u0027English\u0027),\n    (\u0027en-au\u0027, \u0027Australian English\u0027),\n    (\u0027en-gb\u0027, \u0027British English\u0027),\n    (\u0027eo\u0027, \u0027Esperanto\u0027),\n    (\u0027es\u0027, \u0027Spanish\u0027),\n    (\u0027fr\u0027, \u0027French\u0027),\n    (\u0027id\u0027, \u0027Indonesian\u0027),\n    (\u0027it\u0027, \u0027Italian\u0027),\n    (\u0027ja\u0027, \u0027Japanese\u0027),\n    (\u0027ko\u0027, \u0027Korean (Korea)\u0027),\n    (\u0027pl\u0027, \u0027Polish\u0027),\n    (\u0027pt-br\u0027, \u0027Portuguese (Brazil)\u0027),\n    (\u0027ru\u0027, \u0027Russian\u0027),\n    (\u0027tr\u0027, \u0027Turkish\u0027),\n    (\u0027zh-hans\u0027, \u0027Simplified Chinese\u0027),\n    (\u0027zh-hant\u0027, \u0027Traditional Chinese\u0027),\n)\n```\n\nit\u0027s better to use ko for the shortName.\n\nPlease rebase this patch, it can be merged before the next release.","commit_id":"0d75c8f1edd31969e714542ea9ef2fe191a856e4"}],"src/core/index.jsx":[{"author":{"_account_id":34680,"name":"Numan Menekşe","email":"numan.menekse@tubitak.gov.tr","username":"numanmenekse"},"change_message_id":"84e634e34741f5f48c88e04034225d04ad14b773","unresolved":true,"context_lines":[{"line_number":37,"context_line":"const lang \u003d i18n.getLocale();"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"// const localeProvider \u003d lang \u003d\u003d\u003d \u0027en\u0027 ? enUS : zhCN;"},{"line_number":40,"context_line":"const localeProvider \u003d lang \u003d\u003d\u003d \u0027en\u0027 ? enUS : trTR;"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"const render \u003d (component) \u003d\u003e {"},{"line_number":43,"context_line":"  ReactDOM.render("}],"source_content_type":"text/jsx","patch_set":1,"id":"f1adb052_75ee2c22","line":40,"updated":"2023-08-07 07:39:06.000000000","message":"Should be changed to handle all supported languages.\nAlso needs some form of mapping from short name (e.g. \u0027en\u0027) to antd locale name (e.g. \u0027enUS\u0027).","commit_id":"9232121c99846622b02db9834e0692e1ca7dcc2d"},{"author":{"_account_id":34680,"name":"Numan Menekşe","email":"numan.menekse@tubitak.gov.tr","username":"numanmenekse"},"change_message_id":"d354d9eb7ebd1de15be6924c43787f6a70feaebc","unresolved":false,"context_lines":[{"line_number":37,"context_line":"const lang \u003d i18n.getLocale();"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"// const localeProvider \u003d lang \u003d\u003d\u003d \u0027en\u0027 ? enUS : zhCN;"},{"line_number":40,"context_line":"const localeProvider \u003d lang \u003d\u003d\u003d \u0027en\u0027 ? enUS : trTR;"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"const render \u003d (component) \u003d\u003e {"},{"line_number":43,"context_line":"  ReactDOM.render("}],"source_content_type":"text/jsx","patch_set":1,"id":"0c6e4d8b_2aec7a48","line":40,"in_reply_to":"c2db4ce8_7d5b3b2e","updated":"2023-09-13 12:20:32.000000000","message":"Done","commit_id":"9232121c99846622b02db9834e0692e1ca7dcc2d"},{"author":{"_account_id":30434,"name":"Jingwei.Zhang","email":"zhang.jingwei@algoblu.com","username":"jwzhang"},"change_message_id":"398fab5a21c651e186001de7a210183d0b0a5a18","unresolved":true,"context_lines":[{"line_number":37,"context_line":"const lang \u003d i18n.getLocale();"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"// const localeProvider \u003d lang \u003d\u003d\u003d \u0027en\u0027 ? enUS : zhCN;"},{"line_number":40,"context_line":"const localeProvider \u003d lang \u003d\u003d\u003d \u0027en\u0027 ? enUS : trTR;"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"const render \u003d (component) \u003d\u003e {"},{"line_number":43,"context_line":"  ReactDOM.render("}],"source_content_type":"text/jsx","patch_set":1,"id":"c2db4ce8_7d5b3b2e","line":40,"in_reply_to":"f1adb052_75ee2c22","updated":"2023-08-07 14:48:50.000000000","message":"It\u0027s better to set a default language config in the config.yaml(default en), and can change it in the local_config.yaml(such as tr), then change the getLocal function in i18n.js, to use the default language，\n\nSet globalVariables in the config.yaml, use webpack to inject the variables in to the frontend codes.\nI will commit a patch to do this.\n\nset a shortName -\u003e antd language path map, use the lang to set the antd language.\n\nconst languageMap \u003d {\ntr: \u0027antd/es/locale/tr_TR\u0027,\nen: \u0027antd/es/locale/en_US\u0027,\nzh: \u0027antd/es/locale/zh_CN\u0027,\n};\n\nconst lang \u003d require(languageMap[lang]).default;\n\nor import all lanuage first, then set a map.","commit_id":"9232121c99846622b02db9834e0692e1ca7dcc2d"}]}
