Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Make language mappings deterministic
Consider this scenario: Someone has in their config file: ```ini [main] lang_map = it: it-IT [RESOURCE_ID] lang_map = it: it_IT ``` Before we created a local-to-remote map that looked like this: ```json {"it-IT": "it", "it_IT", "it"} ``` And then, to create the remote-to-local map, we reversed it. The problem was that, since both values are the same, the key that ended up being selected was random, so it could either be: ```json {"it": "it-IT"} ``` or ```json {"it": "it_IT"} ``` To fix the issue, we now create remote-to-local first, going over the global configuration first and the resource-level configuration second so that the resource-level will prevail and thus take preference, and then we create the local-to-remote by reversing. So, First, we will consume the global configuration: ```json {"it": "it-IT"} ``` Then, as the resource-level configuration is consumed, it will replace the old key: ```json {"it": "it_IT"} ``` And then, the local-to-remote will end up being: ```json {"it_IT": "it"} ``` This is the deterministic and the intended behaviour, since resource-level configuration should take precedence.
- Loading branch information