{"id":15034289,"url":"https://github.com/nscde/nscde","last_synced_at":"2025-05-15T10:05:38.479Z","repository":{"id":37932780,"uuid":"176572945","full_name":"NsCDE/NsCDE","owner":"NsCDE","description":"Modern and functional CDE desktop based on FVWM","archived":false,"fork":false,"pushed_at":"2024-06-19T22:55:44.000Z","size":80355,"stargazers_count":2042,"open_issues_count":45,"forks_count":60,"subscribers_count":35,"default_branch":"master","last_synced_at":"2025-05-15T10:04:38.333Z","etag":null,"topics":["cde","desktop-environment","fvwm","released","retro","unix","unixporn","window-manager","x11"],"latest_commit_sha":null,"homepage":"","language":"CSS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NsCDE.png","metadata":{"files":{"readme":"README.localization","changelog":"ChangeLog","contributing":null,"funding":".github/FUNDING.yml","license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"liberapay":"Hegel3DReloaded"}},"created_at":"2019-03-19T18:16:30.000Z","updated_at":"2025-05-12T15:46:45.000Z","dependencies_parsed_at":"2023-01-29T01:31:30.538Z","dependency_job_id":"e77050e4-b184-4f78-8f33-b65f3a234bc1","html_url":"https://github.com/NsCDE/NsCDE","commit_stats":{"total_commits":1464,"total_committers":16,"mean_commits":91.5,"dds":"0.023224043715846965","last_synced_commit":"3552a76c3e5f97a230b4b66efe12ec4f9b5a8d22"},"previous_names":[],"tags_count":25,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NsCDE%2FNsCDE","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NsCDE%2FNsCDE/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NsCDE%2FNsCDE/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NsCDE%2FNsCDE/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NsCDE","download_url":"https://codeload.github.com/NsCDE/NsCDE/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254319719,"owners_count":22051073,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cde","desktop-environment","fvwm","released","retro","unix","unixporn","window-manager","x11"],"created_at":"2024-09-24T20:24:30.184Z","updated_at":"2025-05-15T10:05:33.439Z","avatar_url":"https://github.com/NsCDE.png","language":"CSS","funding_links":["https://liberapay.com/Hegel3DReloaded"],"categories":[],"sub_categories":[],"readme":"Notices about localization\n==========================\n\nIntroduction\n------------\n\nNsCDE supports localization by custom LocalePath for fvwm and UseGettext\ndirectives in the FvwmScript scripts.\n\nAll part of visible text provided by NsCDE has localization ability with\nthe restriction of the Workspace names, which are localized according to\nlocale present during user's first setup. That is: \"One\", \"Two\", \"Three\"\nand \"Four\" are translated by catching text with gettext(1). Later this\nworkspaces can be renamed by user as needed.\n\nLANGUAGE and/or LC_MESSAGES must be set for localization to work correctly.\n\nFirst translated language from original English is Croatian. Other\ntranslations are welcome.\n\nBoth .po and .mo localization files are provided in the installation path\n$NSCDE_ROOT/share/locale/\u003clang\u003e/LC_MESSAGES\n\nThere are some pitfalls and things which must be observed when translating\nto the new languages. Existing .po files in \"hr\" can serve as a template for\nnew translations since just msgstr lines must be replaced and msgid's are\nalready there.\n\n\nWarnings\n--------\n\nThis are the things for which translator must be careful:\n\n- FvwmScript based programs and dialogs are unflexible. This means text must\n  somehow fit in dozen of the spaces english size of the phrases and sentences.\n  This is not always the case, but visual testing should be made to see if new\n  text breaks widget sizes or maybe exceeds in visually ugly way on some side.\n  This means alternative wording in new language must be considered, or even at\n  some places abbrevations deployed for things to stay smooth.\n\n- Some smaller child FvwmScript dialogs are using parent \".po\" files. For\n  example, NColorsDialog and ModifyColor are using NsCDE-ColorMgr.po, while\n  PaletteDialog is using BackdropMgr from the parent etc etc ...\n\n\nNotifier\n--------\n\n- Notifier dialogs are flexible. Size of the text doesn't matter here. Only\n  thing that can go wrong is that on the 7-10 places, there are split\n  sentences which if translated literally, can break the logic of the sentence\n  in a new language. Search \"f_Notifier\" FVWM function call in config, libexec\n  and lib/scripts directories (Functions.fvwmconf specially) and try to\n  reproduce them from command line with FvwmCommand or FvwmConsole. For example,\n  you can wrote ~/Test.conf with the content \n\nf_Notifier \"FpLite Function Error\" \"Dismiss\" \"NsCDE/Error.xpm\" \\\n \"$[gt.Error: Func:f_FpLiteClickAction: Cannot find top(1), prstat(1m) or topas(5) in PATH] $[PATH].\"\n\n  ... and then call it with FvwmCommand 'Read $[HOME]/Test.conf'. You should see\n  the dialog in english, and after it is localized, in other language. By picking\n  this messages from the code and main system configuration, you can test it in\n  the relatively easy way. Notifier translations are in the main \"NsCDE.po\".\n\n  Warning: when recompiling \"NsCDE.po\" into \"NsCDE.mo\", NsCDE should be\n  restarted immediately, or you rish the crash with the segfault. Looks like\n  Compiled locale file are treated like dlopened libraries by FVWM.\n\n  Other \".po\" files can be msgfmt'ed without restarting NsCDE (FVWM).\n\n- All Notifier translations are in NsCDE.po, either from this used by the FVWM\n  functions or by the FvwmScript programs and dialogs.\n\n\nOther Dialogs\n-------------\n\n- InputForm is also reading \"NsCDE.mo\" - used in FontMgr and ColorMgr for now.\n\n\nMenus\n-----\n- FVWM menus are also flexible, but following should be observed:\n  - acceleration key is choosen by prefixing accelerator key with a \"\u0026\" sign.\n    For example \"R\u0026aise\" means if menu is opened and \"a\" typed, Raise will\n    be executed. This \"a\" after \"\u0026\" is underlined. In many cases, different words\n    from english may not have that letter, or other options on the same menu\n    can have it, even multiple times. It is on translator to introduce new\n    acceleration keys here. Sign \"\u0026\" is written in \"NsCDE.po\" file with the\n    words in msgid and msgstr lines. See existing example, and consult fvwm(1)\n    for more about FVWM menus.\n\n- While menus are flexible, they can become excessingly fat if some translation\n  considerably differs from english in length. As with FvwmScript, combine\n  different wording and if nothing fits, try to use abbrevations.\n\n\nInitial Setup\n-------------\n\nInitial user setup script is using \"nscde-bootstrap.po\".\n\n\nMisc\n----\n\n- Probably you will run into double definitions, specially for some short string\n  translations. If you see error from msgfmt, handle it. This is specially the\n  true for the main NsCDE.po\n\n- Test every translation. Do not assume it is ok until you don't see it.\n\n- Many of the original messages are using over-capitalization of terms as in\n  original CDE. In first (croatian) translation this is mimicked. It is up to\n  the translator to decide if this questionable style is going to be followed\n  or not, but if you decide not to follow, remember that some terms are names\n  and must be capitalized anyway.\n\n- Calendar applet does not have translation. LC_CTYPE (or overlapping LC_ALL)\n  from the user's environment will set abbrevated month name automatically.\n\n- Good place for LANGUAGE and/or LC_MESSAGES are ~/.bash_profile (or equivalent\n  in other shells) or $FVWM_USERDIR/NsCDE.conf in the form of FVWM \"SetEnv\"\n  directives for setting environment variables.\n\n- Translations should be complete, or at least 90% complete. There is no point\n  to have half translated localizations.\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnscde%2Fnscde","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnscde%2Fnscde","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnscde%2Fnscde/lists"}