Closed
Bug 1415733
Opened 7 years ago
Closed 7 years ago
Migrate the "Search" section of Preferences to the new Localization API
Categories
(Firefox :: Settings UI, defect, P3)
Firefox
Settings UI
Tracking
()
RESOLVED
FIXED
Firefox 61
Tracking | Status | |
---|---|---|
firefox61 | --- | fixed |
People
(Reporter: zbraniecki, Assigned: zbraniecki)
References
Details
Attachments
(2 files, 1 obsolete file)
This bug will cover the migration work required to move the "Search" section of Preferences to Fluent.
URL: http://searchfox.org/mozilla-central/source/browser/components/preferences/in-content/sync.xul
Assignee | ||
Updated•7 years ago
|
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment 3•7 years ago
|
||
mozreview-review |
Comment on attachment 8926739 [details]
Bug 1415733 - Migrate the "Search" section of Preferences to the new Localization API.
https://reviewboard.mozilla.org/r/197978/#review203234
::: browser/locales/en-US/browser/preferences/search.ftl:1
(Diff revision 2)
> +pane-search-title = Search
This string is defined in preferences.dtd. Defining it here means that we need to duplicate it later? I think it should remain in a shared file (not sure if main.ftl, since this seems to be built on top of other code)
http://searchfox.org/mozilla-central/rev/c99d035f00dd894feff38e4ad28a73fb679c63a6/browser/components/preferences/in-content/preferences.xul#142
::: browser/locales/en-US/browser/preferences/search.ftl:37
(Diff revision 2)
> +engine-keyword-column
> + .label = Keyword
> +
> +restore-default-se
> + .label = Restore Default Search Engines
> + .accesskey = d
D
::: browser/locales/en-US/browser/preferences/search.ftl:41
(Diff revision 2)
> + .label = Restore Default Search Engines
> + .accesskey = d
> +
> +remove-engine
> + .label = Remove
> + .accesskey = r
R
Comment 4•7 years ago
|
||
mozreview-review |
Comment on attachment 8926739 [details]
Bug 1415733 - Migrate the "Search" section of Preferences to the new Localization API.
https://reviewboard.mozilla.org/r/197978/#review203266
::: browser/locales/en-US/browser/preferences/search.ftl:54
(Diff revision 2)
> +duplicate-engine-msg =
> + You have chosen a keyword that is currently in use by “{ $name }”.
> + Please select another.
> +
> +duplicate-bookmark-msg =
> + You have chosen a keyword that is currently in use by a bookmark.
Did you go on a new line here for formatting reasons, or do you have a new line because the second part of the string should be displayed on a new line?
I would assume the former, because that's what the current code does.
Isn't Fluent going to display this on two lines, i.e. "You have chosen a keyword that is currently in use by a bookmark.\nPlease select another."?
Comment 5•7 years ago
|
||
mozreview-review |
Comment on attachment 8926739 [details]
Bug 1415733 - Migrate the "Search" section of Preferences to the new Localization API.
https://reviewboard.mozilla.org/r/197978/#review203400
::: browser/components/preferences/in-content/search.js:305
(Diff revision 2)
> - let emsg = strings.getFormattedString("duplicateEngineMsg", [dupName]);
> + ] = await document.l10n.formatValues([
> + ["duplicate-title"],
> + eduplicate ?
> + ["duplicate-engine-msg", { name: dupName }] :
> + ["duplicate-bookmark-msg"],
> + ]);
I'd make this three statements:
let msgids = ['duplicate-title'];
if (eduplicate) {
msgids.push([..{}]);
}
else {
}
let [dtitle, msg] = await document.l10n.formatValues(msgids);
::: browser/locales/en-US/browser/preferences/search.ftl:22
(Diff revision 2)
> + .label = Show search suggestions in address bar results
> + .accesskey = l
> +
> +url-bar-suggestions-permanent-pb =
> + Search suggestions will not be shown in location bar results
> + because you have configured &brandShortName; to never remember history.
DTD entity reference should be branding?
Comment hidden (mozreview-request) |
Comment 7•7 years ago
|
||
mozreview-review |
Comment on attachment 8926739 [details]
Bug 1415733 - Migrate the "Search" section of Preferences to the new Localization API.
https://reviewboard.mozilla.org/r/197978/#review204174
The ftl file should closely map what a migration can do, in particular keep in-string whitespace.
The two cases below actually end up in Services.prompt.alert(), which is whitespace-sensitive.
::: browser/locales/en-US/browser/preferences/search.ftl:51
(Diff revision 3)
> +
> +// Variable
> +// $name (String) - name of the engine using selected keyword
> +duplicate-engine-msg =
> + You have chosen a keyword that is currently in use by “{ $name }”.
> + Please select another.
This is not what we'll have with migrations, we should stick to a 1-1 mapping here so that our en-US testing reflects what migrations will do for localizations.
::: browser/locales/en-US/browser/preferences/search.ftl:55
(Diff revision 3)
> + You have chosen a keyword that is currently in use by “{ $name }”.
> + Please select another.
> +
> +duplicate-bookmark-msg =
> + You have chosen a keyword that is currently in use by a bookmark.
> + Please select another.
... here, too.
Comment hidden (mozreview-request) |
Assignee | ||
Comment 9•7 years ago
|
||
Comment on attachment 8926739 [details]
Bug 1415733 - Migrate the "Search" section of Preferences to the new Localization API.
Thanks for all the feedback so far!
I updated the patch to it and am left with one remaining issue - the jar.mn entries for branding.
The only way I got it to work for en-US at least is to hardcode the en-US, but I suspect that it's not the way it should be in official/aurora/nightly.
Pike - can you help me here?
(I'll still retest that migration produced FTL and the one in en-US match)
Attachment #8926739 -
Flags: feedback?(l10n)
Comment hidden (mozreview-request) |
Assignee | ||
Comment 11•7 years ago
|
||
Comment on attachment 8926739 [details]
Bug 1415733 - Migrate the "Search" section of Preferences to the new Localization API.
Pike - actually, I think I only need a non-en-US brand for ./official/. Still, mot sure how to get it.
Stas - can you look at the migration file? Does it look reasonable?
Attachment #8926739 -
Flags: feedback?(stas)
Attachment #8926739 -
Flags: feedback?(l10n)
Comment 12•7 years ago
|
||
mozreview-review |
Comment on attachment 8926739 [details]
Bug 1415733 - Migrate the "Search" section of Preferences to the new Localization API.
https://reviewboard.mozilla.org/r/197978/#review207904
::: python/l10n/fluent_migrations/bug_1415733.py:10
(Diff revision 5)
> +
> +
> +def migrate(ctx):
> + """Bug 1415733 - Migrate the "Search" section of Preferences to the new Localization API, part {index}"""
> +
> + ctx.maybe_add_localization(
I realized that perhaps we don't need `maybe_add_localization` at all and filed bug 1420225 about it.
::: python/l10n/fluent_migrations/bug_1415733.py:20
(Diff revision 5)
> +
> + ctx.add_transforms(
> + 'browser/branding/brand.ftl',
> + 'browser/branding/locales/en-US/brand.ftl',
> + [
> + FTL.Message(
This will need to be a private message in Fluent Syntax 0.5. I wonder if it would be easier to wait for 0.5 to land in fluent.js and python-fluent before running this migration.
::: python/l10n/fluent_migrations/bug_1415733.py:228
(Diff revision 5)
> + value=COPY(
> + REPLACE(
> + 'browser/chrome/browser/engineManager.properties',
> + 'duplicateEngineMsg',
> + {
> + '%S': EXTERNAL_ARGUMENT(
In theory, we need bug 1317336 to land first before we can reliable support %S placeables in properties files.
In practice, in this particular case all existing translations use the literal %S which is well-supported by the migration code:
https://transvision.mozfr.org/string/?entity=browser/chrome/browser/engineManager.properties:duplicateEngineMsg&repo=gecko_strings
Comment hidden (mozreview-request) |
Assignee | ||
Comment 14•7 years ago
|
||
Thanks :stas!
I got the migration complete and was able to get the branding work, so I think this is ready for a more complete review even if we'll want to wait for some migration code updates before landing it.
Comment hidden (mozreview-request) |
Comment 16•7 years ago
|
||
mozreview-review |
Comment on attachment 8926739 [details]
Bug 1415733 - Migrate the "Search" section of Preferences to the new Localization API.
https://reviewboard.mozilla.org/r/197978/#review211422
I think this should be two patches, one for the pane controlling search engines, and one for the search-in-preferences feature.
As I mentioned in bug 1411012, too, please don't use abbreviations in IDs, that's just making code harder to read.
Also, I notice that we're using '-' both for English and for hiearchy. Like `show-url-bar-suggestions`. Is that a bug or a feature?
Lastly, now that we'll have grammatical data in branding, should we expose all pre-release-channel branding files to localizers? Or are we OK with pre-release channels having funky grammar? Also fine to be discussed in a dedicated bug.
::: browser/branding/aurora/locales/en-US/brand.ftl:1
(Diff revision 7)
> +brand-short-name = Firefox
Needs a license header
::: browser/branding/nightly/locales/en-US/brand.ftl:1
(Diff revision 7)
> +brand-short-name = Nightly
Also, license header.
::: browser/locales/en-US/browser/preferences/search.ftl:10
(Diff revision 7)
> + .label = Use the address bar for search and navigation
> +search-bar-shown
> + .label = Add search bar in toolbar
> +
> +default-search-engine = Default Search Engine
> +default-search-engine-cta = Choose the default search engine to use in the address bar and search bar.
no `-cta`
::: browser/locales/en-US/browser/preferences/search.ftl:20
(Diff revision 7)
> +
> +show-url-bar-suggestions
> + .label = Show search suggestions in address bar results
> + .accesskey = l
> +
> +url-bar-suggestions-permanent-pb = Search suggestions will not be shown in location bar results because you have configured { brand-short-name } to never remember history.
no `-pb`
::: browser/locales/en-US/browser/preferences/search.ftl:24
(Diff revision 7)
> +
> +url-bar-suggestions-permanent-pb = Search suggestions will not be shown in location bar results because you have configured { brand-short-name } to never remember history.
> +
> +one-click-search-engines = One-Click Search Engines
> +
> +one-click-search-engines-cta = Choose the alternative search engines that appear below the address bar and search bar when you start to enter a keyword.
`-cta`
::: browser/locales/en-US/browser/preferences/search.ftl:31
(Diff revision 7)
> +engine-name-column
> + .label = Search Engine
> +engine-keyword-column
> + .label = Keyword
> +
> +restore-default-se
`-se` should be spelled out.
::: browser/locales/en-US/browser/preferences/search.ftl:39
(Diff revision 7)
> +
> +remove-engine
> + .label = Remove
> + .accesskey = R
> +
> +find-more-se = Find more search engines
`-se`
::: python/l10n/fluent_migrations/bug_1415733.py:1
(Diff revision 7)
> +# coding=utf8
License header.
::: python/l10n/fluent_migrations/bug_1415733.py:17
(Diff revision 7)
> + ctx.maybe_add_localization(
> + 'browser/chrome/browser/preferences/search.dtd')
> + ctx.maybe_add_localization(
> + 'browser/chrome/browser/preferences/preferences.dtd')
> + ctx.maybe_add_localization(
> + 'browser/chrome/browser/engineManager.properties')
We don't need these anymore?
Attachment #8926739 -
Flags: review?(l10n) → review-
Comment hidden (mozreview-request) |
Assignee | ||
Updated•7 years ago
|
Attachment #8926739 -
Attachment is obsolete: true
Comment 18•7 years ago
|
||
mozreview-review |
Comment on attachment 8958314 [details]
Bug 1415733 - Migrate the "Search" section of Preferences to the new Localization API.
https://reviewboard.mozilla.org/r/227248/#review233080
::: browser/components/preferences/in-content/search.js:361
(Diff revision 1)
>
> // Notify the user if they have chosen an existing engine/bookmark keyword
> if (eduplicate || bduplicate) {
> - let strings = document.getElementById("engineManagerBundle");
> - let dtitle = strings.getString("duplicateTitle");
> - let bmsg = strings.getString("duplicateBookmarkMsg");
> + let msgids = [["duplicate-title"]];
> + if (eduplicate) {
> + msgids.push(["duplicate-engine-msg", { name: dupName }]);
I think you have the wrong l10n-ids here, unless I'm misunderstanding the code?
::: browser/locales/en-US/browser/preferences/preferences.ftl:408
(Diff revision 1)
> +
> +search-suggestions-cant-show = Search suggestions will not be shown in location bar results because you have configured { -brand-short-name } to never remember history.
> +
> +search-one-click-header = One-Click Search Engines
> +
> +search-choose-alternative-engines = Choose the alternative search engines that appear below the address bar and search bar when you start to enter a keyword.
search-one-click-desc for consistency (it's the description of this section)
::: browser/locales/en-US/browser/preferences/preferences.ftl:425
(Diff revision 1)
> + .label = Remove
> + .accesskey = R
> +
> +search-find-more-link = Find more search engines
> +
> +search-keyword-warning-title = Duplicate Keyword
Add a comment here to avoid possible confusion:
# This warning is displayed when the chosen keyword is already in use
# ('Duplicate' is an adjective)
::: browser/locales/en-US/browser/preferences/preferences.ftl:426
(Diff revision 1)
> + .accesskey = R
> +
> +search-find-more-link = Find more search engines
> +
> +search-keyword-warning-title = Duplicate Keyword
> +search-keyword-warning-engine = You have chosen a keyword that is currently in use by “{ $name }”. Please select another.
Worth adding a note that $name is the name of a search engine.
::: python/l10n/fluent_migrations/bug_1415733_preferences_search.py:122
(Diff revision 1)
> + value=REPLACE(
> + 'browser/chrome/browser/preferences/search.dtd',
> + 'urlBarSuggestionsPermanentPB.label',
> + {
> + '&brandShortName;': MESSAGE_REFERENCE(
> + 'brand-short-name'
Missing leading -
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment 21•7 years ago
|
||
Not sure why from the diff, but this patch fails to apply on central for me. Can you check if it needs a rebase?
Assignee | ||
Comment 22•7 years ago
|
||
It's based on the search results patch. Sorry for that!
Comment 23•7 years ago
|
||
mozreview-review |
Comment on attachment 8958314 [details]
Bug 1415733 - Migrate the "Search" section of Preferences to the new Localization API.
https://reviewboard.mozilla.org/r/227248/#review233382
Looks good to me.
Attachment #8958314 -
Flags: review?(francesco.lodolo) → review+
Assignee | ||
Comment 24•7 years ago
|
||
Updated•7 years ago
|
Attachment #8958314 -
Flags: review?(jaws) → review?(gijskruitbosch+bugs)
Comment 25•7 years ago
|
||
mozreview-review |
Comment on attachment 8958314 [details]
Bug 1415733 - Migrate the "Search" section of Preferences to the new Localization API.
https://reviewboard.mozilla.org/r/227248/#review233668
LGTM. FWIW, I noticed android and various other things running on the trypush. Those don't use the prefs. For future reference, something like this:
try: -b od -p win64,macosx64,linux64,linux64-asan -u mochitest-bc,firefox-ui-functional,marionette,marionette-e10s -t none --artifact
will get you all the test coverage the prefs have, I think, with artifact builds to make it go more quickly. :-)
(the tier-2 firefox ui en-US tests have a single high-frequency-intermittent-orange to do with search keyword attribute for artifact builds, but otherwise it should Just Work.)
::: browser/components/preferences/in-content/findInPage.js:296
(Diff revision 3)
> document.l10n.setAttributes(msgElem, "search-results-sorry-message", {
> query: this.query
> });
> let helpUrl = Services.urlFormatter.formatURLPref("app.support.baseURL") + "preferences";
> let helpContainer = document.getElementById("need-help");
> - let link = helpContainer.querySelector("a").setAttribute("href", helpUrl);
> + helpContainer.querySelector("a").setAttribute("href", helpUrl);
Stray hunk from the other bug?
Attachment #8958314 -
Flags: review?(gijskruitbosch+bugs) → review+
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment 28•7 years ago
|
||
Pushed by zbraniecki@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/647154f30332
Migrate the "Search" section of Preferences to the new Localization API. r=flod,Gijs
Comment 29•7 years ago
|
||
bugherder |
Status: ASSIGNED → RESOLVED
Closed: 7 years ago
status-firefox61:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → Firefox 61
Comment hidden (obsolete) |
Comment 31•7 years ago
|
||
Pushed by ncsoregi@mozilla.com:
https://hg.mozilla.org/mozilla-central/rev/c87a57081a24
Migrate the "Search" section of Preferences to the new Localization API. r=flod,Gijs a=reland
Updated•7 years ago
|
Status: REOPENED → RESOLVED
Closed: 7 years ago → 7 years ago
Flags: needinfo?(gandalf)
Resolution: --- → FIXED
Target Milestone: --- → Firefox 61
You need to log in
before you can comment on or make changes to this bug.
Description
•