Documentation
¶
Overview ¶
Copyright © 2025 PRAS
[Documentation reference](https://develop.kde.org/docs/plasma/widget/translations-i18n/) [Logic reference](https://github.com/Zren/plasma-applet-lib/blob/master/package/translate/build)
Copyright © 2025 PRAS ¶
[Documentation reference](https://develop.kde.org/docs/plasma/widget/translations-i18n/) [Logic reference](https://github.com/Zren/plasma-applet-lib/blob/master/package/translate/merge)
Copyright © 2025 PRAS
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // utils functions GetDataFromMetadata = utils.GetDataFromMetadata )
mockable functions for testing
View Source
var I18nCmd = &cobra.Command{
Use: "i18n",
Short: "Manage internationalization (i18n) for the plasmoid",
Long: `Provides tools to extract translatable strings and compile translation files.`,
}
i18nCmd represents the i18n command
View Source
var I18nCompileCmd = &cobra.Command{ Use: "compile", Short: "Compile .po files to binary .mo files", Run: func(cmd *cobra.Command, args []string) { if !utilsIsValidPlasmoid() { fmt.Println(color.RedString("Current directory is not a valid plasmoid.")) return } if !utilsIsPackageInstalled(consts.GettextPackageName["binary"]) { pm, _ := utilsDetectPackageManager() var confirm bool confirmPrompt := &survey.Confirm{ Message: "gettext is not installed. Do you want to install it first?", Default: true, } if !confirm { if err := surveyAskOne(confirmPrompt, &confirm); err != nil { return } } if confirm { if err := utilsInstallPackage(pm, consts.GettextPackageName["binary"], consts.GettextPackageName); err != nil { fmt.Println(color.RedString("Failed to install gettext:", err)) return } } else { fmt.Println("Operation cancelled.") return } } if !silent { fmt.Println(color.CyanString("Compiling translation files...")) } if err := CompileI18n(root.ConfigRC, silent); err != nil { fmt.Println(color.RedString("Failed to compile messages: %v", err)) return } if !silent { fmt.Println(color.GreenString("Successfully compiled all translation files.")) } }, }
View Source
var I18nExtractCmd = &cobra.Command{ Use: "extract", Short: "Extract translatable strings from source files", Run: func(cmd *cobra.Command, args []string) { if !utilsIsValidPlasmoid() { fmt.Println(color.RedString("Current directory is not a valid plasmoid.")) return } if !utilsIsPackageInstalled(consts.GettextPackageName["binary"]) { pm, _ := utilsDetectPackageManager() var confirm bool confirmPrompt := &survey.Confirm{ Message: "gettext is not installed. Do you want to install it first?", Default: true, } if !confirm { if err := surveyAskOne(confirmPrompt, &confirm); err != nil { return } } if confirm { if err := utilsInstallPackage(pm, consts.GettextPackageName["binary"], consts.GettextPackageName); err != nil { fmt.Println(color.RedString("Failed to install gettext:", err)) return } } else { fmt.Println("Operation cancelled.") return } } color.Cyan("Extracting translatable strings...") translationsDir := root.ConfigRC.I18n.Dir _ = osMkdirAll(translationsDir, 0755) if err := runXGettext(translationsDir); err != nil { fmt.Println(color.RedString("Failed to extract strings: %v", err)) return } fmt.Println(color.GreenString("Successfully extracted strings to %s/template.pot", translationsDir)) isPoGen, _ := cmd.Flags().GetBool("no-po") if !isPoGen { if err := generatePoFiles(translationsDir); err != nil { fmt.Println(color.RedString("Failed to generate .po files: %v", err)) return } } }, }
Functions ¶
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.