func (target *Target) DownloadAndWriteToFile(client *phraseapp.Client, localeFile *LocaleFile) error { downloadParams := new(phraseapp.LocaleDownloadParams) *downloadParams = target.Params.LocaleDownloadParams if downloadParams.FileFormat == nil { downloadParams.FileFormat = &localeFile.FileFormat } if Debug { fmt.Fprintln(os.Stderr, "Target file pattern:", target.File) fmt.Fprintln(os.Stderr, "Actual file path", localeFile.Path) fmt.Fprintln(os.Stderr, "LocaleID", localeFile.ID) fmt.Fprintln(os.Stderr, "ProjectID", target.ProjectID) fmt.Fprintln(os.Stderr, "FileFormat", downloadParams.FileFormat) fmt.Fprintln(os.Stderr, "ConvertEmoji", downloadParams.ConvertEmoji) fmt.Fprintln(os.Stderr, "IncludeEmptyTranslations", downloadParams.IncludeEmptyTranslations) fmt.Fprintln(os.Stderr, "KeepNotranslateTags", downloadParams.KeepNotranslateTags) fmt.Fprintln(os.Stderr, "Tag", downloadParams.Tag) fmt.Fprintln(os.Stderr, "FormatOptions", downloadParams.FormatOptions) } res, err := client.LocaleDownload(target.ProjectID, localeFile.ID, downloadParams) if err != nil { return err } err = ioutil.WriteFile(localeFile.Path, res, 0700) if err != nil { return err } return nil }
func (source *Source) createLocale(client *phraseapp.Client, localeFile *LocaleFile) (*phraseapp.LocaleDetails, error) { if localeFile.RFC == "" { return nil, fmt.Errorf("no locale code specified") } localeParams := new(phraseapp.LocaleParams) if localeFile.Name != "" { localeParams.Name = &localeFile.Name } else if localeFile.RFC != "" { localeParams.Name = &localeFile.RFC } localeName := source.replacePlaceholderInParams(localeFile) if localeName != "" && localeName != localeFile.RFC { localeParams.Name = &localeName } if localeFile.RFC != "" { localeParams.Code = &localeFile.RFC } localeDetails, err := client.LocaleCreate(source.ProjectID, localeParams) if err != nil { return nil, err } return localeDetails, nil }
func RemoteLocales(client *phraseapp.Client, projectId string) ([]*phraseapp.Locale, error) { page := 1 locales, err := client.LocalesList(projectId, page, 25) if err != nil { return nil, err } result := locales for len(locales) == 25 { page = page + 1 locales, err = client.LocalesList(projectId, page, 25) if err != nil { return nil, err } result = append(result, locales...) } return result, nil }
func (source *Source) uploadFile(client *phraseapp.Client, localeFile *LocaleFile) error { if Debug { fmt.Fprintln(os.Stdout, "Source file pattern:", source.File) fmt.Fprintln(os.Stdout, "Actual file location:", localeFile.Path) } params := new(phraseapp.UploadParams) *params = *source.Params params.File = &localeFile.Path if params.LocaleID == nil { switch { case localeFile.ID != "": params.LocaleID = &localeFile.ID case localeFile.RFC != "": params.LocaleID = &localeFile.RFC } } _, err := client.UploadCreate(source.ProjectID, params) return err }