| Summary: | Languages for REST API is returned in random order | ||
|---|---|---|---|
| Product: | Koha | Reporter: | Jonathan Druart <jonathan.druart> |
| Component: | REST API | Assignee: | Bugs List <koha-bugs> |
| Status: | NEW --- | QA Contact: | Testopia <testopia> |
| Severity: | normal | ||
| Priority: | P5 - low | CC: | martin.renvoize, tomascohen |
| Version: | unspecified | ||
| Hardware: | All | ||
| OS: | All | ||
| GIT URL: | Initiative type: | --- | |
| Sponsorship status: | --- | Comma delimited list of Sponsors: | |
| Crowdfunding goal: | 0 | Patch complexity: | --- |
| Documentation contact: | Documentation submission: | ||
| Text to go in the release notes: | Version(s) released in: | ||
| Circulation function: | |||
Note that if HTTP_ACCEPT_LANGUAGE is set to a language that is installed it will be used correctly. |
At least for the tests: Run t/db_dependent/api/v1/ill_requests.t several times. If you have several languages installed it will fail randomly: # $got->[0]{_strings}{status}{str} = 'Solicitado' # $expected->[0]{_strings}{status}{str} = 'Requested' or # $got->[0]{_strings}{status}{str} = 'Angefordert' # $expected->[0]{_strings}{status}{str} = 'Requested' This is because getlanguage hit the else: if ( $interface eq 'opac' || $interface eq 'intranet' ) { [...] } else { @languages = map { $_->{rfc4646_subtag} } @{ getTranslatedLanguages( $interface, $theme ) }; $language = Koha::Language->get_requested_language(); } and getTranslatedLanguages returns the languages in a random order. So there might be several problems highlighted here. You can easily recreate the problem with: use C4::Languages; use C4::Context; C4::Context->interface('api'); say C4::Languages::getlanguage();