summaryrefslogtreecommitdiffstats
path: root/devtools/client/inspector/animation/utils/l10n.js
blob: 6fffa98b655757aa624f57df58132080d5647945 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

"use strict";

const { LocalizationHelper } = require("resource://devtools/shared/l10n.js");
const L10N = new LocalizationHelper(
  "devtools/client/locales/animationinspector.properties"
);
const INSPECTOR_L10N = new LocalizationHelper(
  "devtools/client/locales/inspector.properties"
);

/**
 * Get a formatted title for this animation. This will be either:
 * "%S", "%S : CSS Transition", "%S : CSS Animation",
 * "%S : Script Animation", or "Script Animation", depending
 * if the server provides the type, what type it is and if the animation
 * has a name.
 *
 * @param {Object} state
 */
function getFormattedTitle(state) {
  // Older servers don't send a type, and only know about
  // CSSAnimations and CSSTransitions, so it's safe to use
  // just the name.
  if (!state.type) {
    return state.name;
  }

  // Script-generated animations may not have a name.
  if (state.type === "scriptanimation" && !state.name) {
    return L10N.getStr("timeline.scriptanimation.unnamedLabel");
  }

  return L10N.getFormatStr(`timeline.${state.type}.nameLabel`, state.name);
}

module.exports = {
  getFormatStr: (...args) => L10N.getFormatStr(...args),
  getFormattedTitle,
  getInspectorStr: (...args) => INSPECTOR_L10N.getStr(...args),
  getStr: (...args) => L10N.getStr(...args),
  numberWithDecimals: (...args) => L10N.numberWithDecimals(...args),
};