diff --git a/internal/outpost/ldap/utils.go b/internal/outpost/ldap/utils.go index ef9a1c2a32..67cad4f2ea 100644 --- a/internal/outpost/ldap/utils.go +++ b/internal/outpost/ldap/utils.go @@ -66,7 +66,7 @@ func AKAttrsToLDAP(attrs interface{}) []*ldap.EntryAttribute { func (pi *ProviderInstance) GroupsForUser(user api.User) []string { groups := make([]string, len(user.Groups)) - for i, group := range user.Groups { + for i, group := range user.GroupsObj { groups[i] = pi.GetGroupDN(group.Name) } return groups diff --git a/website/developer-docs/translation.md b/website/developer-docs/translation.md index 623a2aec44..337d8b8170 100644 --- a/website/developer-docs/translation.md +++ b/website/developer-docs/translation.md @@ -6,9 +6,23 @@ Translation in authentik is done in two places. Most of the text is defined in t The frontend uses [lingui](https://lingui.js.org/), and the backend uses the built-in django translation tools. -## Frontend +## Online translation -If you want to translate the frontend to a new language, ensure the language code is in the `package.json` file in `web/`: +To simplify translation you can use https://www.transifex.com/beryjuorg/authentik/, which has no local requirements. + +## Local translation + +### Prerequisites + +- Node (any recent version should work, we use 16.x to build) +- Make (again, any recent version should work) +- Docker + +In the root of the cloned repository, run `make gen-web` to generate the API Client used by the webinterface. + +Afterwards, run `npm i` in the `/web` folder to install all dependencies. + +Ensure the language code is in the `package.json` file in `web/`: ```json // [...]