Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

simpler fallback behavior #189

Merged
merged 11 commits into from
Sep 28, 2020
Merged

simpler fallback behavior #189

merged 11 commits into from
Sep 28, 2020

Conversation

nicksnyder
Copy link
Owner

@nicksnyder nicksnyder commented Jun 16, 2019

Fixes #182

name                                                                                        old time/op    new time/op    delta
Localizer_Localize/missing_translation_from_default_language_with_other_translation-8         34.4µs ± 1%     0.3µs ± 6%   -99.11%  (p=0.000 n=8+8)
Localizer_Localize/missing_translation_not_default_language_with_other_translation-8          35.5µs ± 3%     0.4µs ± 9%   -99.00%  (p=0.000 n=8+8)
Localizer_Localize/empty_translation_without_fallback-8                                       32.4µs ± 1%     0.4µs ± 4%   -98.83%  (p=0.001 n=7+7)
Localizer_Localize/message_id_not_mismatched-8                                                 305ns ±22%     279ns ± 4%    -8.45%  (p=0.040 n=8+8)
Localizer_Localize/template_data,_plural_count_float,_default_message-8                       13.1µs ±15%    12.1µs ± 3%    -7.90%  (p=0.002 n=8+8)
Localizer_Localize/template_data,_custom_delims,_default_message-8                            9.21µs ± 2%    8.51µs ± 1%    -7.65%  (p=0.000 n=7+8)
Localizer_Localize/accept_not_default_language,_other_message_in_bundle,_default_message-8     227ns ± 4%     214ns ± 5%    -5.94%  (p=0.001 n=8+8)
Localizer_Localize/template_data,_plural_count_other,_default_message-8                       12.2µs ± 5%    11.5µs ± 1%    -5.84%  (p=0.000 n=7+8)
Localizer_Localize/accept_not_default_language,_message_in_bundle-8                            295ns ± 3%     278ns ± 4%    -5.51%  (p=0.000 n=8+7)
Localizer_Localize/template_data,_plural_count_one,_default_message-8                         12.3µs ± 4%    11.7µs ± 6%    -4.17%  (p=0.029 n=7+8)
Localizer_Localize/template_data,_custom_delims,_bundle_message-8                              821ns ± 3%     795ns ± 5%    -3.13%  (p=0.017 n=7+7)
Localizer_Localize/fallback_to_non-default_less_specific_language-8                            766ns ± 2%     753ns ± 3%    -1.71%  (p=0.036 n=8+8)
Localizer_Localize/missing_translation_from_default_language-8                                 283ns ±11%     285ns ± 2%      ~     (p=0.692 n=8+7)
Localizer_Localize/accept_default_language,_message_in_bundle-8                                278ns ± 2%     278ns ± 5%      ~     (p=0.733 n=8+8)
Localizer_Localize/accept_default_language,_message_in_bundle,_default_message-8               288ns ± 2%     282ns ± 5%      ~     (p=0.164 n=8+8)
Localizer_Localize/accept_not_default_language,_message_in_bundle,_default_message-8           295ns ± 2%     291ns ± 4%      ~     (p=0.524 n=8+8)
Localizer_Localize/accept_default_language,_default_message-8                                  531ns ± 5%     539ns ± 5%      ~     (p=0.320 n=7+8)
Localizer_Localize/accept_not_default_language,_default_message-8                              452ns ± 4%     446ns ± 3%      ~     (p=0.101 n=7+7)
Localizer_Localize/fallback_to_non-default_more_specific_language-8                            291ns ± 3%     284ns ±10%      ~     (p=0.061 n=8+8)
Localizer_Localize/plural_count_one,_bundle_message-8                                         1.12µs ± 3%    1.14µs ±14%      ~     (p=0.842 n=7+8)
Localizer_Localize/plural_count_other,_bundle_message-8                                       1.11µs ± 3%    1.17µs ±12%      ~     (p=0.224 n=8+8)
Localizer_Localize/plural_count_float,_bundle_message-8                                       1.33µs ±13%    1.33µs ± 5%      ~     (p=0.574 n=8+8)
Localizer_Localize/plural_count_one,_default_message-8                                        9.10µs ± 8%   10.86µs ±53%      ~     (p=0.574 n=8+8)
Localizer_Localize/plural_count_missing_other,_default_message-8                               818ns ± 3%     837ns ± 9%      ~     (p=0.243 n=8+7)
Localizer_Localize/plural_count_other,_default_message-8                                      10.1µs ±14%     9.9µs ±16%      ~     (p=0.721 n=8+8)
Localizer_Localize/plural_count_float,_default_message-8                                      10.7µs ±24%     9.5µs ± 4%      ~     (p=0.281 n=8+7)
Localizer_Localize/template_data,_bundle_message-8                                             831ns ± 5%     888ns ±19%      ~     (p=0.458 n=8+8)
Localizer_Localize/template_data,_default_message-8                                           9.04µs ± 3%    8.82µs ± 7%      ~     (p=0.189 n=7+8)
Localizer_Localize/template_data,_plural_count_one,_bundle_message-8                          1.28µs ± 4%    1.26µs ± 2%      ~     (p=0.155 n=7+7)
Localizer_Localize/template_data,_plural_count_float,_bundle_message-8                        1.47µs ± 3%    1.48µs ± 6%      ~     (p=0.777 n=8+8)
Localizer_Localize/template_data,_plural_count_other,_bundle_message-8                        1.27µs ± 4%    1.31µs ± 5%    +3.64%  (p=0.047 n=8+8)
Localizer_Localize/message_id_mismatch-8                                                      38.0ns ± 1%    40.0ns ± 4%    +5.30%  (p=0.000 n=7+8)
Localizer_Localize/plural_count_missing_one,_default_message-8                                9.33µs ± 8%   10.81µs ±17%   +15.94%  (p=0.009 n=8+7)
Localizer_Localize/missing_translation_from_not_default_language-8                             206ns ± 3%     340ns ± 6%   +64.93%  (p=0.000 n=8+8)

name                                                                                        old alloc/op   new alloc/op   delta
Localizer_Localize/missing_translation_not_default_language_with_other_translation-8          10.0kB ± 0%     0.0kB ± 0%   -99.52%  (p=0.000 n=8+8)
Localizer_Localize/missing_translation_from_default_language_with_other_translation-8         9.42kB ± 0%    0.05kB ± 0%   -99.49%  (p=0.000 n=8+8)
Localizer_Localize/empty_translation_without_fallback-8                                       8.83kB ± 0%    0.05kB ± 0%   -99.46%  (p=0.002 n=7+8)
Localizer_Localize/message_id_mismatch-8                                                       32.0B ± 0%     32.0B ± 0%      ~     (all equal)
Localizer_Localize/message_id_not_mismatched-8                                                 0.00B          0.00B           ~     (all equal)
Localizer_Localize/accept_default_language,_message_in_bundle-8                                0.00B          0.00B           ~     (all equal)
Localizer_Localize/accept_default_language,_message_in_bundle,_default_message-8               0.00B          0.00B           ~     (all equal)
Localizer_Localize/accept_not_default_language,_message_in_bundle-8                            0.00B          0.00B           ~     (all equal)
Localizer_Localize/accept_not_default_language,_other_message_in_bundle,_default_message-8     0.00B          0.00B           ~     (all equal)
Localizer_Localize/accept_not_default_language,_message_in_bundle,_default_message-8           0.00B          0.00B           ~     (all equal)
Localizer_Localize/accept_default_language,_default_message-8                                   368B ± 0%      368B ± 0%      ~     (all equal)
Localizer_Localize/accept_not_default_language,_default_message-8                               368B ± 0%      368B ± 0%      ~     (all equal)
Localizer_Localize/fallback_to_non-default_less_specific_language-8                            56.0B ± 0%     56.0B ± 0%      ~     (all equal)
Localizer_Localize/fallback_to_non-default_more_specific_language-8                            0.00B          0.00B           ~     (all equal)
Localizer_Localize/plural_count_one,_bundle_message-8                                           592B ± 0%      592B ± 0%      ~     (all equal)
Localizer_Localize/plural_count_other,_bundle_message-8                                         592B ± 0%      592B ± 0%      ~     (all equal)
Localizer_Localize/plural_count_float,_bundle_message-8                                         624B ± 0%      624B ± 0%      ~     (all equal)
Localizer_Localize/plural_count_one,_default_message-8                                        5.06kB ± 0%    5.06kB ± 0%      ~     (p=0.298 n=7+8)
Localizer_Localize/plural_count_missing_one,_default_message-8                                5.00kB ± 0%    5.00kB ± 0%      ~     (p=0.324 n=7+8)
Localizer_Localize/plural_count_missing_other,_default_message-8                                784B ± 0%      784B ± 0%      ~     (all equal)
Localizer_Localize/plural_count_other,_default_message-8                                      5.06kB ± 0%    5.06kB ± 0%      ~     (p=0.572 n=8+7)
Localizer_Localize/plural_count_float,_default_message-8                                      5.10kB ± 0%    5.09kB ± 0%      ~     (p=0.529 n=8+6)
Localizer_Localize/template_data,_bundle_message-8                                              208B ± 0%      208B ± 0%      ~     (all equal)
Localizer_Localize/template_data,_default_message-8                                           4.46kB ± 0%    4.46kB ± 0%      ~     (p=1.000 n=8+8)
Localizer_Localize/template_data,_custom_delims,_bundle_message-8                               208B ± 0%      208B ± 0%      ~     (all equal)
Localizer_Localize/template_data,_custom_delims,_default_message-8                            4.46kB ± 0%    4.46kB ± 0%      ~     (p=0.075 n=8+8)
Localizer_Localize/template_data,_plural_count_one,_bundle_message-8                            288B ± 0%      288B ± 0%      ~     (all equal)
Localizer_Localize/template_data,_plural_count_other,_bundle_message-8                          288B ± 0%      288B ± 0%      ~     (all equal)
Localizer_Localize/template_data,_plural_count_float,_bundle_message-8                          336B ± 0%      336B ± 0%      ~     (all equal)
Localizer_Localize/template_data,_plural_count_one,_default_message-8                         5.03kB ± 0%    5.03kB ± 0%      ~     (p=1.000 n=8+8)
Localizer_Localize/template_data,_plural_count_other,_default_message-8                       5.03kB ± 0%    5.03kB ± 0%      ~     (p=0.886 n=8+8)
Localizer_Localize/template_data,_plural_count_float,_default_message-8                       5.08kB ± 0%    5.08kB ± 0%      ~     (p=1.000 n=8+8)
Localizer_Localize/missing_translation_from_default_language-8                                 16.0B ± 0%     48.0B ± 0%  +200.00%  (p=0.000 n=8+8)
Localizer_Localize/missing_translation_from_not_default_language-8                             16.0B ± 0%     48.0B ± 0%  +200.00%  (p=0.000 n=8+8)

name                                                                                        old allocs/op  new allocs/op  delta
Localizer_Localize/missing_translation_not_default_language_with_other_translation-8             229 ± 0%         1 ± 0%   -99.56%  (p=0.000 n=8+8)
Localizer_Localize/missing_translation_from_default_language_with_other_translation-8            208 ± 0%         1 ± 0%   -99.52%  (p=0.000 n=8+8)
Localizer_Localize/empty_translation_without_fallback-8                                          188 ± 0%         1 ± 0%   -99.47%  (p=0.000 n=8+8)
Localizer_Localize/message_id_mismatch-8                                                        1.00 ± 0%      1.00 ± 0%      ~     (all equal)
Localizer_Localize/message_id_not_mismatched-8                                                  0.00           0.00           ~     (all equal)
Localizer_Localize/missing_translation_from_default_language-8                                  1.00 ± 0%      1.00 ± 0%      ~     (all equal)
Localizer_Localize/missing_translation_from_not_default_language-8                              1.00 ± 0%      1.00 ± 0%      ~     (all equal)
Localizer_Localize/accept_default_language,_message_in_bundle-8                                 0.00           0.00           ~     (all equal)
Localizer_Localize/accept_default_language,_message_in_bundle,_default_message-8                0.00           0.00           ~     (all equal)
Localizer_Localize/accept_not_default_language,_message_in_bundle-8                             0.00           0.00           ~     (all equal)
Localizer_Localize/accept_not_default_language,_other_message_in_bundle,_default_message-8      0.00           0.00           ~     (all equal)
Localizer_Localize/accept_not_default_language,_message_in_bundle,_default_message-8            0.00           0.00           ~     (all equal)
Localizer_Localize/accept_default_language,_default_message-8                                   4.00 ± 0%      4.00 ± 0%      ~     (all equal)
Localizer_Localize/accept_not_default_language,_default_message-8                               4.00 ± 0%      4.00 ± 0%      ~     (all equal)
Localizer_Localize/fallback_to_non-default_less_specific_language-8                             4.00 ± 0%      4.00 ± 0%      ~     (all equal)
Localizer_Localize/fallback_to_non-default_more_specific_language-8                             0.00           0.00           ~     (all equal)
Localizer_Localize/plural_count_one,_bundle_message-8                                           9.00 ± 0%      9.00 ± 0%      ~     (all equal)
Localizer_Localize/plural_count_other,_bundle_message-8                                         9.00 ± 0%      9.00 ± 0%      ~     (all equal)
Localizer_Localize/plural_count_float,_bundle_message-8                                         10.0 ± 0%      10.0 ± 0%      ~     (all equal)
Localizer_Localize/plural_count_one,_default_message-8                                          47.0 ± 0%      47.0 ± 0%      ~     (all equal)
Localizer_Localize/plural_count_missing_one,_default_message-8                                  47.0 ± 0%      47.0 ± 0%      ~     (all equal)
Localizer_Localize/plural_count_missing_other,_default_message-8                                8.00 ± 0%      8.00 ± 0%      ~     (all equal)
Localizer_Localize/plural_count_other,_default_message-8                                        47.0 ± 0%      47.0 ± 0%      ~     (all equal)
Localizer_Localize/plural_count_float,_default_message-8                                        48.0 ± 0%      48.0 ± 0%      ~     (all equal)
Localizer_Localize/template_data,_bundle_message-8                                              6.00 ± 0%      6.00 ± 0%      ~     (all equal)
Localizer_Localize/template_data,_default_message-8                                             40.0 ± 0%      40.0 ± 0%      ~     (all equal)
Localizer_Localize/template_data,_custom_delims,_bundle_message-8                               6.00 ± 0%      6.00 ± 0%      ~     (all equal)
Localizer_Localize/template_data,_custom_delims,_default_message-8                              40.0 ± 0%      40.0 ± 0%      ~     (all equal)
Localizer_Localize/template_data,_plural_count_one,_bundle_message-8                            9.00 ± 0%      9.00 ± 0%      ~     (all equal)
Localizer_Localize/template_data,_plural_count_other,_bundle_message-8                          9.00 ± 0%      9.00 ± 0%      ~     (all equal)
Localizer_Localize/template_data,_plural_count_float,_bundle_message-8                          10.0 ± 0%      10.0 ± 0%      ~     (all equal)
Localizer_Localize/template_data,_plural_count_one,_default_message-8                           54.0 ± 0%      54.0 ± 0%      ~     (all equal)
Localizer_Localize/template_data,_plural_count_other,_default_message-8                         54.0 ± 0%      54.0 ± 0%      ~     (all equal)
Localizer_Localize/template_data,_plural_count_float,_default_message-8                         55.0 ± 0%      55.0 ± 0%      ~     (all equal)

@codecov
Copy link

codecov bot commented Jun 16, 2019

Codecov Report

Merging #189 into master will increase coverage by 0.69%.
The diff coverage is 100.00%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master     #189      +/-   ##
==========================================
+ Coverage   82.01%   82.70%   +0.69%     
==========================================
  Files          14       14              
  Lines        1173     1168       -5     
==========================================
+ Hits          962      966       +4     
+ Misses        147      141       -6     
+ Partials       64       61       -3     
Impacted Files Coverage Δ
v2/i18n/bundle.go 61.36% <100.00%> (+3.86%) ⬆️
v2/i18n/localizer.go 92.64% <100.00%> (+10.82%) ⬆️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 663c088...873a92c. Read the comment docs.

Repository owner deleted a comment from codecov bot Jun 17, 2019
@artch
Copy link

artch commented Nov 7, 2019

What is the ETA on this? This issue blocks Hugo project from taking advantage of the v2 new features.

@nicksnyder
Copy link
Owner Author

I don't have an ETA for this. See #201.

I think this PR is a good change, but I didn't have a chance to write as many unit tests as I wanted and I have lost all context on this.

One option for Hugo, at least for development and testing, is to depend on this branch directly to see if everything works as you expect.

@nicksnyder nicksnyder marked this pull request as ready for review September 28, 2020 22:01
@nicksnyder nicksnyder merged commit 66dee75 into master Sep 28, 2020
@nicksnyder nicksnyder deleted the fallback branch September 28, 2020 23:06
mmosta pushed a commit to agilebits/go-i18n that referenced this pull request Nov 30, 2020
nicksnyder pushed a commit that referenced this pull request Oct 23, 2023
Behavior has changed with #189. Before that, an empty default message returned nil and an error, now it returns "" without error.

This has been detected by mattermost test suit in mattermost/mattermost#21327 which tries to switch all code base to go-i18n v2, see [related discussion](https://github.com/mattermost/mattermost/pull/21327/files#r1365634307)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Performance regression from v1 to v2
2 participants