Skip to content

[Feature] Improve legal code language selection/fallback #448

@TimidRobot

Description

@TimidRobot

Problem

The language selection/fallback for Deeds & UX is robust:

  1. https://github.com/creativecommons/cc-legal-tools-app/blob/1906900d05b00367024c05b92f8b103c5044e9d7/i18n/utils.py#L307C1-L335
  2. def get_default_language_for_jurisdiction_deed(jurisdiction_code):
    default_language = DEFAULT_JURISDICTION_LANGUAGES.get(
    jurisdiction_code, settings.LANGUAGE_CODE
    )
    if default_language in settings.LANGUAGES_MOSTLY_TRANSLATED:
    return default_language
    else:
    return settings.LANGUAGE_CODE

However, logic for the legal code translation domains use a naive version:

  1. def get_default_language_for_jurisdiction_naive(jurisdiction_code):
    return DEFAULT_JURISDICTION_LANGUAGES.get(
    jurisdiction_code, settings.LANGUAGE_CODE
    )

Description

  1. Add a new function (ex. load_legal_code_translations()) that populate a new variable (ex. settings.LANGUAGES_AVAILABLE_LEGAL_CODE)
    • (much like the load_deeds_ux_translations() function)
  2. get_default_language_for_jurisdiction_naive() -> get_default_language_for_jurisdiction_legal_code()
    • The get_default_language_for_jurisdiction_naive() function should be replaced with a get_default_language_for_jurisdiction_legal_code() function
    • The new function should rely on a setting variable (ex. settings.LANGUAGES_AVAILABLE_LEGAL_CODE)
      • (much like the get_default_language_for_jurisdiction_deed() function relies on settings.LANGUAGES_MOSTLY_TRANSLATED)
  3. get_default_language_for_jurisdiction_deed() -> get_default_language_for_jurisdiction_deed_ux()
    • The get_default_language_for_jurisdiction_deed() function should be renamed to get_default_language_for_jurisdiction_deed_ux()
    • (the scope is the Deeds & UX translation domain, not specifically the deeds)
  4. settings.LANGUAGES_MOSTLY_TRANSLATED -> settings.LANGUAGES_AVAILABLE_DEEDS_UX
    • The settings.LANGUAGES_MOSTLY_TRANSLATED variable should be rename to settings.LANGUAGES_AVAILABLE_DEEDS_UX
    • (the scope is the Deeds & UX translation domain, not specifically the deeds)

Additional context

Implementation

  • I would be interested in implementing this feature.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    Status

    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions