more comments inline.

Diff comments:

> 
> === modified file 'src/ui_fsmenu/options.cc'
> --- src/ui_fsmenu/options.cc  2017-09-11 16:59:41 +0000
> +++ src/ui_fsmenu/options.cc  2017-10-14 16:12:18 +0000
> @@ -432,7 +421,7 @@
>       language_dropdown_.add(_("Try system language"), "", nullptr, 
> current_locale == "");
>       language_dropdown_.add("English", "en", nullptr, current_locale == 
> "en");
>  
> -     // Add translation directories to the list
> +     // Add translation directories to the list. We use a vector so we can 
> call std::sort on it.

My question is why we are not using a std::map then - it is always sorted and 
does not require std::sort.

>       std::vector<LanguageEntry> entries;
>       std::string selected_locale;
>  
> @@ -484,6 +475,67 @@
>       }
>  }
>  
> +/**
> + * Updates the language statistics message according to the currently 
> selected locale.
> + * @param include_system_lang We only want to include the system lang if it 
> matches the Widelands
> + * locale.
> + */
> +void FullscreenMenuOptions::update_language_stats(bool include_system_lang) {
> +     int percent = 100;
> +     std::string message = "";
> +     if (language_dropdown_.has_selection()) {
> +             std::string locale = language_dropdown_.get_selected();
> +             // Empty locale means try system locale
> +             if (locale.empty() && include_system_lang) {
> +                     std::vector<std::string> parts;
> +                     boost::split(parts, i18n::get_locale(), 
> boost::is_any_of("."));
> +                     if (language_entries_.count(parts[0]) == 1) {
> +                             locale = parts[0];
> +                     } else {
> +                             boost::split(parts, parts[0], 
> boost::is_any_of("@"));
> +                             if (language_entries_.count(parts[0]) == 1) {
> +                                     locale = parts[0];
> +                             } else {
> +                                     boost::split(parts, parts[0], 
> boost::is_any_of("_"));
> +                                     if (language_entries_.count(parts[0]) 
> == 1) {
> +                                             locale = parts[0];
> +                                     }
> +                             }
> +                     }
> +             }
> +
> +             // If we have the locale, grab the stats and set the message
> +             if (language_entries_.count(locale) == 1) {
> +                     try {
> +                             const LanguageEntry& entry = 
> language_entries_[locale];
> +                             Profile prof("i18n/translation_stats.conf");
> +                             Section& s = prof.get_safe_section(locale);
> +                             percent = floor(100.f * s.get_int("translated") 
> / s.get_int("total"));
> +                             if (percent == 100) {
> +                                     message = (boost::format(_("The 
> translation into %s is complete.")) %
> +                                                               
> entry.descname)
> +                                                                      .str();
> +                             } else {
> +                                     message = (boost::format(_("The 
> translation into %s is %d%% complete.")) %
> +                                                               
> entry.descname % percent)
> +                                                                      .str();
> +                             }
> +                     } catch (...) {
> +                     }
> +             }
> +     }
> +
> +     // We will want some help with incomplete translations
> +     if (percent <= 90) {

I am fine with 90, just add a comment for the rationale here.

> +             message = message + " " +
> +                       (boost::format(_("If you wish to help us translate, 
> please visit %s")) %
> +                        "<font 
> underline=1>widelands.org/wiki/TranslatingWidelands</font>")
> +                          .str();
> +     }
> +     // Make font a bit smaller so the link will fit at 800x600 resolution.
> +     translation_info_.set_text(as_uifont(message, 12));
> +}
> +
>  void FullscreenMenuOptions::clicked_apply() {
>       
> end_modal<FullscreenMenuBase::MenuTarget>(FullscreenMenuBase::MenuTarget::kApplyOptions);
>  }


-- 
https://code.launchpad.net/~widelands-dev/widelands/translation_stats/+merge/332029
Your team Widelands Developers is subscribed to branch 
lp:~widelands-dev/widelands/translation_stats.

_______________________________________________
Mailing list: https://launchpad.net/~widelands-dev
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~widelands-dev
More help   : https://help.launchpad.net/ListHelp

Reply via email to