@designcrowd/library.brand-page 6.2.8 → 6.2.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/lib/src/{CreatedOnBrandCrowd-de-de-Bi71mUjJ.js → CreatedOnBrandCrowd-de-de-9uC6t5HU.js} +1 -1
  2. package/lib/src/{CreatedOnBrandCrowd-en-us-C2kl91cc.js → CreatedOnBrandCrowd-en-us-P6TzcklZ.js} +1 -1
  3. package/lib/src/{CreatedOnBrandCrowd-es-es-CNK-VpMH.js → CreatedOnBrandCrowd-es-es-DimkGb1_.js} +1 -1
  4. package/lib/src/{CreatedOnBrandCrowd-fr-fr-B_WTCv5k.js → CreatedOnBrandCrowd-fr-ca-CL_iFuJw.js} +1 -1
  5. package/lib/src/{CreatedOnBrandCrowd-fr-ca-B_WTCv5k.js → CreatedOnBrandCrowd-fr-fr-CL_iFuJw.js} +1 -1
  6. package/lib/src/{CreatedOnBrandCrowd-pt-pt-Dk-k5-Nh.js → CreatedOnBrandCrowd-pt-br-DSIjEoMv.js} +1 -1
  7. package/lib/src/{CreatedOnBrandCrowd-pt-br-Dk-k5-Nh.js → CreatedOnBrandCrowd-pt-pt-DSIjEoMv.js} +1 -1
  8. package/lib/src/{CreatedOnDcom-de-de-BVaJyfAR.js → CreatedOnDcom-de-de-CKRvl9Ky.js} +1 -1
  9. package/lib/src/{CreatedOnDcom-en-us-DVzzynRf.js → CreatedOnDcom-en-us-ChplPDfS.js} +1 -1
  10. package/lib/src/{CreatedOnDcom-es-es-BS2u-QHG.js → CreatedOnDcom-es-es-DCIXsW9X.js} +1 -1
  11. package/lib/src/{CreatedOnDcom-fr-ca-BavFpbyC.js → CreatedOnDcom-fr-ca-lakt1nLU.js} +1 -1
  12. package/lib/src/{CreatedOnDcom-fr-fr-DRchqDHL.js → CreatedOnDcom-fr-fr-RsGK1y5g.js} +1 -1
  13. package/lib/src/{CreatedOnDcom-pt-br-N7XAWRj_.js → CreatedOnDcom-pt-br-DyA4XodM.js} +1 -1
  14. package/lib/src/{CreatedOnDcom-pt-pt-Bct14us6.js → CreatedOnDcom-pt-pt-BK51dTyw.js} +1 -1
  15. package/lib/src/brand-page-maker/components/color-picker/BpColorPicker.stories.d.ts +3 -0
  16. package/lib/src/brand-page-maker/components/color-picker/BpColorPicker.stories.js +10 -0
  17. package/lib/src/brand-page-maker/components/color-picker/components/ColorModeSelect.mixin.d.ts +2 -2
  18. package/lib/src/brand-page-maker/components/color-picker/components/ColorModeSelect.mixin.js +2 -2
  19. package/lib/src/{bundled-translations-BNA5h0Dx.js → bundled-translations-zfiA5Tsw.js} +1 -1
  20. package/lib/src/{bundled-translations.de-DE-fyTHrRxT.js → bundled-translations.de-DE-ChsdSyAP.js} +13 -13
  21. package/lib/src/{bundled-translations.es-ES-BMmvJGGC.js → bundled-translations.es-ES-DflsWQK0.js} +17 -17
  22. package/lib/src/{bundled-translations.fr-CA-Bo69L_BP.js → bundled-translations.fr-CA-fpDRuZ52.js} +1 -1
  23. package/lib/src/{bundled-translations.fr-FR-C4yTVFOW.js → bundled-translations.fr-FR-Bub73Zt-.js} +17 -17
  24. package/lib/src/{bundled-translations.pt-BR-CPMPfny0.js → bundled-translations.pt-BR-BlnWE9TB.js} +13 -13
  25. package/lib/src/{bundled-translations.pt-PT-C6ZwYs37.js → bundled-translations.pt-PT-DmzXlnaS.js} +30 -30
  26. package/lib/src/bundles/bundled-translations.de-DE.json +7 -1
  27. package/lib/src/bundles/bundled-translations.es-ES.json +7 -1
  28. package/lib/src/bundles/bundled-translations.fr-CA.json +7 -1
  29. package/lib/src/bundles/bundled-translations.fr-FR.json +7 -1
  30. package/lib/src/bundles/bundled-translations.json +7 -1
  31. package/lib/src/bundles/bundled-translations.pt-BR.json +7 -1
  32. package/lib/src/bundles/bundled-translations.pt-PT.json +7 -1
  33. package/lib/src/css/library.brand-page-brandCrowd.min.css +3 -3
  34. package/lib/src/css/library.brand-page-brandPage.min.css +3 -3
  35. package/lib/src/css/library.brand-page-designCom.min.css +3 -3
  36. package/lib/src/css/library.brand-page-preview.min.css +3 -3
  37. package/lib/src/index.mjs +1 -1
  38. package/lib/src/{lib-BE9sCFvu.js → lib-Ca7GMpcR.js} +5210 -5200
  39. package/package.json +1 -1
  40. package/src/brand-page-maker/components/color-picker/BpColorPicker.stories.ts +10 -0
  41. package/src/brand-page-maker/components/color-picker/components/ColorModeSelect.mixin.ts +2 -2
  42. package/src/brand-page-maker/components/color-picker/components/ColorModeSelect.test.ts +116 -0
  43. package/src/brand-page-maker/components/color-picker/components/ColorModeSelect.vue +7 -1
  44. package/src/brand-page-maker/components/color-picker/components/GradientTypeSelector.test.ts +157 -0
  45. package/src/brand-page-maker/components/color-picker/components/GradientTypeSelector.vue +10 -4
  46. package/src/bundles/bundled-translations.de-DE.json +7 -1
  47. package/src/bundles/bundled-translations.es-ES.json +7 -1
  48. package/src/bundles/bundled-translations.fr-CA.json +7 -1
  49. package/src/bundles/bundled-translations.fr-FR.json +7 -1
  50. package/src/bundles/bundled-translations.json +7 -1
  51. package/src/bundles/bundled-translations.pt-BR.json +7 -1
  52. package/src/bundles/bundled-translations.pt-PT.json +7 -1
  53. package/src/shared/color-picker/components/i18n/color-picker.de-DE.json +8 -1
  54. package/src/shared/color-picker/components/i18n/color-picker.es-ES.json +8 -1
  55. package/src/shared/color-picker/components/i18n/color-picker.fr-CA.json +8 -1
  56. package/src/shared/color-picker/components/i18n/color-picker.fr-FR.json +8 -1
  57. package/src/shared/color-picker/components/i18n/color-picker.json +8 -1
  58. package/src/shared/color-picker/components/i18n/color-picker.pt-BR.json +8 -1
  59. package/src/shared/color-picker/components/i18n/color-picker.pt-PT.json +8 -1
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@designcrowd/library.brand-page",
3
3
  "description": "A collection of Maker/Designer applications",
4
- "version": "6.2.8",
4
+ "version": "6.2.9",
5
5
  "author": "Design.com Eng",
6
6
  "license": "UNLICENSED",
7
7
  "type": "module",
@@ -1,4 +1,5 @@
1
1
  import { defineComponent } from 'vue';
2
+ import { setLocaleAsync } from '@src/composables/useTranslate';
2
3
  import ColorPickerV2 from './BpColorPickerV2.vue';
3
4
  import ColorModeSelect from './components/ColorModeSelect.vue';
4
5
  import GradientTypeSelector from './components/GradientTypeSelector.vue';
@@ -7,6 +8,15 @@ import GradientColorSlider from './components/GradientColorSlider.vue';
7
8
  export default {
8
9
  title: 'Components/BpColorPicker',
9
10
  component: ColorPickerV2,
11
+ // All of this file's stories render labels looked up via colorPickerTr; with
12
+ // i18next 25, t() returns undefined before setLocaleAsync runs. A meta-level
13
+ // loader awaits it once for every story, including BpColorPickerV2Sample's
14
+ // ColorModeSelect/GradientTypeSelector rendered inside the popup.
15
+ loaders: [
16
+ async ({ globals }) => {
17
+ await setLocaleAsync(globals.locale);
18
+ },
19
+ ],
10
20
  };
11
21
 
12
22
  export const ColorModeSelectComponent = () => {
@@ -7,11 +7,11 @@ export const COLOR_PICKER_MODE = {
7
7
 
8
8
  export const COLOR_PICKER_MODE_OPTIONS = [
9
9
  {
10
- displayName: 'Solid Color',
10
+ labelKey: 'colorModeSolid',
11
11
  value: COLOR_PICKER_MODE.SOLID,
12
12
  },
13
13
  {
14
- displayName: 'Gradient Color',
14
+ labelKey: 'colorModeGradient',
15
15
  value: COLOR_PICKER_MODE.GRADIENT,
16
16
  },
17
17
  ];
@@ -0,0 +1,116 @@
1
+ import { mount } from '@vue/test-utils';
2
+ import i18next from 'i18next';
3
+ import { describe, expect, test } from 'vitest';
4
+ import {
5
+ setLocaleAsync,
6
+ supportedLocales,
7
+ type LocaleTypes,
8
+ } from '@src/composables/useTranslate';
9
+ import ColorModeSelect from './ColorModeSelect.vue';
10
+ import en from '@src/shared/color-picker/components/i18n/color-picker.json';
11
+ import deDE from '@src/shared/color-picker/components/i18n/color-picker.de-DE.json';
12
+ import esES from '@src/shared/color-picker/components/i18n/color-picker.es-ES.json';
13
+ import frCA from '@src/shared/color-picker/components/i18n/color-picker.fr-CA.json';
14
+ import frFR from '@src/shared/color-picker/components/i18n/color-picker.fr-FR.json';
15
+ import ptBR from '@src/shared/color-picker/components/i18n/color-picker.pt-BR.json';
16
+ import ptPT from '@src/shared/color-picker/components/i18n/color-picker.pt-PT.json';
17
+
18
+ // Expected values come from the locale files, not literals, so Smartling's
19
+ // rewrite of the wording can't turn these tests red.
20
+ const localeFiles: Record<LocaleTypes, typeof en> = {
21
+ 'en-US': en,
22
+ 'de-DE': deDE,
23
+ 'es-ES': esES,
24
+ 'fr-CA': frCA,
25
+ 'fr-FR': frFR,
26
+ 'pt-BR': ptBR,
27
+ 'pt-PT': ptPT,
28
+ };
29
+
30
+ const stringsFor = (locale: LocaleTypes): (typeof en)['colorPicker'] =>
31
+ localeFiles[locale].colorPicker;
32
+
33
+ const NON_ENGLISH_LOCALES = supportedLocales.filter(
34
+ (locale) => locale !== 'en-US',
35
+ );
36
+
37
+ // See RecaptchaDisclosure.vue.test.ts: the shared i18next singleton only takes
38
+ // the language from `setLocaleAsync` on its first call.
39
+ const useLocale = async (locale: string): Promise<void> => {
40
+ await setLocaleAsync(locale as LocaleTypes);
41
+ await i18next.changeLanguage(locale);
42
+ };
43
+
44
+ const optionTexts = (wrapper: ReturnType<typeof mount>): string[] =>
45
+ wrapper.findAll('option').map((option) => option.text());
46
+
47
+ const mountSelect = (modelValue?: string): ReturnType<typeof mount> =>
48
+ mount(ColorModeSelect, { props: { modelValue } });
49
+
50
+ describe('ColorModeSelect', () => {
51
+ test.each(NON_ENGLISH_LOCALES)(
52
+ 'dropdown options use the %s locale file',
53
+ async (locale) => {
54
+ await useLocale(locale);
55
+
56
+ const wrapper = mountSelect();
57
+
58
+ expect(optionTexts(wrapper)).toEqual([
59
+ stringsFor(locale).colorModeSolid,
60
+ stringsFor(locale).colorModeGradient,
61
+ ]);
62
+ optionTexts(wrapper).forEach((text) => {
63
+ expect(text).not.toMatch(/^colorPicker\./);
64
+ });
65
+ },
66
+ );
67
+
68
+ test('English dropdown options read word for word', async () => {
69
+ await useLocale('en-US');
70
+
71
+ const wrapper = mountSelect();
72
+
73
+ expect(optionTexts(wrapper)).toEqual(['Solid Color', 'Gradient Color']);
74
+ });
75
+
76
+ // A key missing from one locale file renders as its key path on the site;
77
+ // the shared test singleton would hide it behind the en-US fallback.
78
+ test.each(supportedLocales)(
79
+ 'every locale file defines the colour-mode keys: %s',
80
+ (locale) => {
81
+ (['colorModeSolid', 'colorModeGradient'] as const).forEach((key) => {
82
+ const value = stringsFor(locale)[key];
83
+
84
+ expect(typeof value, `${locale} › ${key}`).toBe('string');
85
+ expect(value.trim(), `${locale} › ${key}`).not.toBe('');
86
+ });
87
+ },
88
+ );
89
+
90
+ test('a gradient colour opens on the translated gradient option', async () => {
91
+ await useLocale('de-DE');
92
+
93
+ const wrapper = mountSelect('gradient');
94
+ const select = wrapper.find('select');
95
+
96
+ expect((select.element as HTMLSelectElement).value).toBe('gradient');
97
+ expect(wrapper.find('option:checked').text()).toBe(
98
+ stringsFor('de-DE').colorModeGradient,
99
+ );
100
+ });
101
+
102
+ test('picking an option emits the same value as today', async () => {
103
+ await useLocale('de-DE');
104
+
105
+ const wrapper = mountSelect('solid');
106
+ const select = wrapper.find('select');
107
+
108
+ await select.setValue('gradient');
109
+ await select.setValue('solid');
110
+
111
+ expect(wrapper.emitted('update:modelValue')).toEqual([
112
+ ['gradient'],
113
+ ['solid'],
114
+ ]);
115
+ });
116
+ });
@@ -10,15 +10,21 @@
10
10
  :key="index"
11
11
  :value="mode.value"
12
12
  >
13
- {{ mode.displayName }}
13
+ {{ colorPickerTr(mode.labelKey) }}
14
14
  </option>
15
15
  </select>
16
16
  </template>
17
17
 
18
18
  <script>
19
19
  import ColorModeSelectMixin from './ColorModeSelect.mixin';
20
+ import { colorPickerTr } from '@src/composables/useTranslate';
20
21
 
21
22
  export default {
22
23
  mixins: [ColorModeSelectMixin],
24
+ setup() {
25
+ return {
26
+ colorPickerTr,
27
+ };
28
+ },
23
29
  };
24
30
  </script>
@@ -0,0 +1,157 @@
1
+ import { mount } from '@vue/test-utils';
2
+ import i18next from 'i18next';
3
+ import { describe, expect, test } from 'vitest';
4
+ import {
5
+ setLocaleAsync,
6
+ supportedLocales,
7
+ type LocaleTypes,
8
+ } from '@src/composables/useTranslate';
9
+ import GradientTypeSelector from './GradientTypeSelector.vue';
10
+ import en from '@src/shared/color-picker/components/i18n/color-picker.json';
11
+ import deDE from '@src/shared/color-picker/components/i18n/color-picker.de-DE.json';
12
+ import esES from '@src/shared/color-picker/components/i18n/color-picker.es-ES.json';
13
+ import frCA from '@src/shared/color-picker/components/i18n/color-picker.fr-CA.json';
14
+ import frFR from '@src/shared/color-picker/components/i18n/color-picker.fr-FR.json';
15
+ import ptBR from '@src/shared/color-picker/components/i18n/color-picker.pt-BR.json';
16
+ import ptPT from '@src/shared/color-picker/components/i18n/color-picker.pt-PT.json';
17
+
18
+ // Expected values come from the locale files, not literals, so Smartling's
19
+ // rewrite of the wording can't turn these tests red.
20
+ const localeFiles: Record<LocaleTypes, typeof en> = {
21
+ 'en-US': en,
22
+ 'de-DE': deDE,
23
+ 'es-ES': esES,
24
+ 'fr-CA': frCA,
25
+ 'fr-FR': frFR,
26
+ 'pt-BR': ptBR,
27
+ 'pt-PT': ptPT,
28
+ };
29
+
30
+ const stringsFor = (locale: LocaleTypes): (typeof en)['colorPicker'] =>
31
+ localeFiles[locale].colorPicker;
32
+
33
+ const NON_ENGLISH_LOCALES = supportedLocales.filter(
34
+ (locale) => locale !== 'en-US',
35
+ );
36
+
37
+ // See RecaptchaDisclosure.vue.test.ts: the shared i18next singleton only takes
38
+ // the language from `setLocaleAsync` on its first call.
39
+ const useLocale = async (locale: string): Promise<void> => {
40
+ await setLocaleAsync(locale as LocaleTypes);
41
+ await i18next.changeLanguage(locale);
42
+ };
43
+
44
+ const buttons = (
45
+ wrapper: ReturnType<typeof mount>,
46
+ ): ReturnType<ReturnType<typeof mount>['findAll']> =>
47
+ wrapper.findAll('.gradient-color-switch-button');
48
+
49
+ const mountSelector = (modelValue?: string): ReturnType<typeof mount> =>
50
+ mount(GradientTypeSelector, { props: { modelValue } });
51
+
52
+ describe('GradientTypeSelector', () => {
53
+ test.each(NON_ENGLISH_LOCALES)(
54
+ 'gradient buttons and hints use the %s locale file',
55
+ async (locale) => {
56
+ await useLocale(locale);
57
+
58
+ const wrapper = mountSelector();
59
+ const [linear, radial] = buttons(wrapper);
60
+
61
+ expect(linear.text()).toBe(stringsFor(locale).gradientTypeLinear);
62
+ expect(radial.text()).toBe(stringsFor(locale).gradientTypeRadial);
63
+ expect(linear.attributes('title')).toBe(
64
+ stringsFor(locale).gradientTypeLinearTitle,
65
+ );
66
+ expect(radial.attributes('title')).toBe(
67
+ stringsFor(locale).gradientTypeRadialTitle,
68
+ );
69
+ [linear.text(), radial.text()].forEach((text) => {
70
+ expect(text).not.toMatch(/^colorPicker\./);
71
+ });
72
+ expect(linear.classes()).toContain('gradient-color-switch-button');
73
+ expect(radial.classes()).toContain('gradient-color-switch-button');
74
+ },
75
+ );
76
+
77
+ test('English gradient buttons and hints read word for word', async () => {
78
+ await useLocale('en-US');
79
+
80
+ const wrapper = mountSelector();
81
+ const [linear, radial] = buttons(wrapper);
82
+
83
+ expect(linear.text()).toBe('Linear');
84
+ expect(radial.text()).toBe('Radial');
85
+ expect(linear.attributes('title')).toBe('Linear Gradient Color');
86
+ expect(radial.attributes('title')).toBe('Radial Gradient Color');
87
+ });
88
+
89
+ // A key missing from one locale file renders as its key path on the site;
90
+ // the shared test singleton would hide it behind the en-US fallback.
91
+ test.each(supportedLocales)(
92
+ 'every locale file defines the gradient-type keys: %s',
93
+ (locale) => {
94
+ (
95
+ [
96
+ 'gradientTypeLinear',
97
+ 'gradientTypeRadial',
98
+ 'gradientTypeLinearTitle',
99
+ 'gradientTypeRadialTitle',
100
+ ] as const
101
+ ).forEach((key) => {
102
+ const value = stringsFor(locale)[key];
103
+
104
+ expect(typeof value, `${locale} › ${key}`).toBe('string');
105
+ expect(value.trim(), `${locale} › ${key}`).not.toBe('');
106
+ });
107
+ },
108
+ );
109
+
110
+ test('clicking a gradient button emits the same value as today', async () => {
111
+ await useLocale('de-DE');
112
+
113
+ const wrapper = mountSelector('linear');
114
+ const [, radial] = buttons(wrapper);
115
+
116
+ await radial.trigger('click');
117
+
118
+ const [linear] = buttons(wrapper);
119
+
120
+ await linear.trigger('click');
121
+
122
+ expect(wrapper.emitted('update:modelValue')).toEqual([
123
+ ['radial'],
124
+ ['linear'],
125
+ ]);
126
+ });
127
+
128
+ // gradientTypeRadial is "Radial" in every locale file, so a literal
129
+ // <span>Radial</span> would also pass the assertions above. Override the
130
+ // resource at runtime to prove the label is actually looked up.
131
+ test('the radial label is looked up, not hard-coded', async () => {
132
+ await useLocale('de-DE');
133
+
134
+ const original = stringsFor('de-DE').gradientTypeRadial;
135
+
136
+ i18next.addResource(
137
+ 'de-DE',
138
+ 'bp',
139
+ 'colorPicker.gradientTypeRadial',
140
+ 'probe-radial',
141
+ );
142
+
143
+ try {
144
+ const wrapper = mountSelector();
145
+ const [, radial] = buttons(wrapper);
146
+
147
+ expect(radial.text()).toBe('probe-radial');
148
+ } finally {
149
+ i18next.addResource(
150
+ 'de-DE',
151
+ 'bp',
152
+ 'colorPicker.gradientTypeRadial',
153
+ original,
154
+ );
155
+ }
156
+ });
157
+ });
@@ -4,7 +4,7 @@
4
4
  class="tw-flex tw-border-2 tw-border-solid tw-border-secondary-500 tw-rounded"
5
5
  >
6
6
  <button
7
- title="Linear Gradient Color"
7
+ :title="colorPickerTr('gradientTypeLinearTitle')"
8
8
  class="gradient-color-switch-button"
9
9
  :class="{
10
10
  'gradient-color-switch-button_is-on': isLinear,
@@ -12,10 +12,10 @@
12
12
  }"
13
13
  @click.stop="onGradientTypeClick('linear')"
14
14
  >
15
- <span> Linear </span>
15
+ <span>{{ colorPickerTr('gradientTypeLinear') }}</span>
16
16
  </button>
17
17
  <button
18
- title="Radial Gradient Color"
18
+ :title="colorPickerTr('gradientTypeRadialTitle')"
19
19
  class="gradient-color-switch-button"
20
20
  :class="{
21
21
  'gradient-color-switch-button_is-on': isRadial,
@@ -23,16 +23,22 @@
23
23
  }"
24
24
  @click.stop="onGradientTypeClick('radial')"
25
25
  >
26
- <span> Radial </span>
26
+ <span>{{ colorPickerTr('gradientTypeRadial') }}</span>
27
27
  </button>
28
28
  </div>
29
29
  </template>
30
30
 
31
31
  <script>
32
32
  import GradientTypeSelectorMixin from './GradientTypeSelector.mixin';
33
+ import { colorPickerTr } from '@src/composables/useTranslate';
33
34
 
34
35
  export default {
35
36
  mixins: [GradientTypeSelectorMixin],
37
+ setup() {
38
+ return {
39
+ colorPickerTr,
40
+ };
41
+ },
36
42
  };
37
43
  </script>
38
44
 
@@ -1332,7 +1332,13 @@
1332
1332
  "newColor": "Neue Farbe",
1333
1333
  "defaultColors": "Standardfarben",
1334
1334
  "gradientColors": "Verlaufsfarben",
1335
- "selectThisColor": "Diese Farbe auswählen"
1335
+ "selectThisColor": "Diese Farbe auswählen",
1336
+ "colorModeSolid": "Volltonfarbe",
1337
+ "colorModeGradient": "Farbverlauf",
1338
+ "gradientTypeLinear": "Linear",
1339
+ "gradientTypeRadial": "Radial",
1340
+ "gradientTypeLinearTitle": "Linearer Farbverlauf",
1341
+ "gradientTypeRadialTitle": "Radialer Farbverlauf"
1336
1342
  },
1337
1343
  "common": {
1338
1344
  "desktop": "Desktop",
@@ -1332,7 +1332,13 @@
1332
1332
  "newColor": "Nuevo color",
1333
1333
  "defaultColors": "Colores predeterminados",
1334
1334
  "gradientColors": "Colores en degradado",
1335
- "selectThisColor": "Selecciona este color"
1335
+ "selectThisColor": "Selecciona este color",
1336
+ "colorModeSolid": "Color sólido",
1337
+ "colorModeGradient": "Degradado",
1338
+ "gradientTypeLinear": "Lineal",
1339
+ "gradientTypeRadial": "Radial",
1340
+ "gradientTypeLinearTitle": "Degradado lineal",
1341
+ "gradientTypeRadialTitle": "Degradado radial"
1336
1342
  },
1337
1343
  "common": {
1338
1344
  "desktop": "ESCRITORIO",
@@ -1332,7 +1332,13 @@
1332
1332
  "newColor": "Nouvelle couleur",
1333
1333
  "defaultColors": "Couleurs par défaut",
1334
1334
  "gradientColors": "Dégradés de couleurs",
1335
- "selectThisColor": "Sélectionner cette couleur"
1335
+ "selectThisColor": "Sélectionner cette couleur",
1336
+ "colorModeSolid": "Couleur unie",
1337
+ "colorModeGradient": "Dégradé",
1338
+ "gradientTypeLinear": "Linéaire",
1339
+ "gradientTypeRadial": "Radial",
1340
+ "gradientTypeLinearTitle": "Dégradé linéaire",
1341
+ "gradientTypeRadialTitle": "Dégradé radial"
1336
1342
  },
1337
1343
  "common": {
1338
1344
  "desktop": "Ordinateur",
@@ -1332,7 +1332,13 @@
1332
1332
  "newColor": "Nouvelle couleur",
1333
1333
  "defaultColors": "Couleurs par défaut",
1334
1334
  "gradientColors": "Dégradés de couleurs",
1335
- "selectThisColor": "Sélectionner cette couleur"
1335
+ "selectThisColor": "Sélectionner cette couleur",
1336
+ "colorModeSolid": "Couleur unie",
1337
+ "colorModeGradient": "Dégradé",
1338
+ "gradientTypeLinear": "Linéaire",
1339
+ "gradientTypeRadial": "Radial",
1340
+ "gradientTypeLinearTitle": "Dégradé linéaire",
1341
+ "gradientTypeRadialTitle": "Dégradé radial"
1336
1342
  },
1337
1343
  "common": {
1338
1344
  "desktop": "Ordinateur",
@@ -1332,7 +1332,13 @@
1332
1332
  "newColor": "New Color",
1333
1333
  "defaultColors": "Default Colors",
1334
1334
  "gradientColors": "Gradient Colors",
1335
- "selectThisColor": "Select this color"
1335
+ "selectThisColor": "Select this color",
1336
+ "colorModeSolid": "Solid Color",
1337
+ "colorModeGradient": "Gradient Color",
1338
+ "gradientTypeLinear": "Linear",
1339
+ "gradientTypeRadial": "Radial",
1340
+ "gradientTypeLinearTitle": "Linear Gradient Color",
1341
+ "gradientTypeRadialTitle": "Radial Gradient Color"
1336
1342
  },
1337
1343
  "common": {
1338
1344
  "desktop": "desktop",
@@ -1332,7 +1332,13 @@
1332
1332
  "newColor": "Nova cor",
1333
1333
  "defaultColors": "Cores padrão",
1334
1334
  "gradientColors": "Gradientes de cores",
1335
- "selectThisColor": "Selecione esta cor"
1335
+ "selectThisColor": "Selecione esta cor",
1336
+ "colorModeSolid": "Cor sólida",
1337
+ "colorModeGradient": "Gradiente",
1338
+ "gradientTypeLinear": "Linear",
1339
+ "gradientTypeRadial": "Radial",
1340
+ "gradientTypeLinearTitle": "Gradiente linear",
1341
+ "gradientTypeRadialTitle": "Gradiente radial"
1336
1342
  },
1337
1343
  "common": {
1338
1344
  "desktop": "área de trabalho",
@@ -1332,7 +1332,13 @@
1332
1332
  "newColor": "Nova cor",
1333
1333
  "defaultColors": "Cores padrão",
1334
1334
  "gradientColors": "Gradientes de cores",
1335
- "selectThisColor": "Selecione esta cor"
1335
+ "selectThisColor": "Selecione esta cor",
1336
+ "colorModeSolid": "Cor sólida",
1337
+ "colorModeGradient": "Gradiente",
1338
+ "gradientTypeLinear": "Linear",
1339
+ "gradientTypeRadial": "Radial",
1340
+ "gradientTypeLinearTitle": "Gradiente linear",
1341
+ "gradientTypeRadialTitle": "Gradiente radial"
1336
1342
  },
1337
1343
  "common": {
1338
1344
  "desktop": "computador",
@@ -3,6 +3,13 @@
3
3
  "newColor" : "Neue Farbe",
4
4
  "defaultColors" : "Standardfarben",
5
5
  "gradientColors" : "Verlaufsfarben",
6
- "selectThisColor" : "Diese Farbe auswählen"
6
+ "selectThisColor" : "Diese Farbe auswählen",
7
+
8
+ "colorModeSolid" : "Volltonfarbe",
9
+ "colorModeGradient" : "Farbverlauf",
10
+ "gradientTypeLinear" : "Linear",
11
+ "gradientTypeRadial" : "Radial",
12
+ "gradientTypeLinearTitle" : "Linearer Farbverlauf",
13
+ "gradientTypeRadialTitle" : "Radialer Farbverlauf"
7
14
  }
8
15
  }
@@ -3,6 +3,13 @@
3
3
  "newColor" : "Nuevo color",
4
4
  "defaultColors" : "Colores predeterminados",
5
5
  "gradientColors" : "Colores en degradado",
6
- "selectThisColor" : "Selecciona este color"
6
+ "selectThisColor" : "Selecciona este color",
7
+
8
+ "colorModeSolid" : "Color sólido",
9
+ "colorModeGradient" : "Degradado",
10
+ "gradientTypeLinear" : "Lineal",
11
+ "gradientTypeRadial" : "Radial",
12
+ "gradientTypeLinearTitle" : "Degradado lineal",
13
+ "gradientTypeRadialTitle" : "Degradado radial"
7
14
  }
8
15
  }
@@ -3,6 +3,13 @@
3
3
  "newColor" : "Nouvelle couleur",
4
4
  "defaultColors" : "Couleurs par défaut",
5
5
  "gradientColors" : "Dégradés de couleurs",
6
- "selectThisColor" : "Sélectionner cette couleur"
6
+ "selectThisColor" : "Sélectionner cette couleur",
7
+
8
+ "colorModeSolid" : "Couleur unie",
9
+ "colorModeGradient" : "Dégradé",
10
+ "gradientTypeLinear" : "Linéaire",
11
+ "gradientTypeRadial" : "Radial",
12
+ "gradientTypeLinearTitle" : "Dégradé linéaire",
13
+ "gradientTypeRadialTitle" : "Dégradé radial"
7
14
  }
8
15
  }
@@ -3,6 +3,13 @@
3
3
  "newColor" : "Nouvelle couleur",
4
4
  "defaultColors" : "Couleurs par défaut",
5
5
  "gradientColors" : "Dégradés de couleurs",
6
- "selectThisColor" : "Sélectionner cette couleur"
6
+ "selectThisColor" : "Sélectionner cette couleur",
7
+
8
+ "colorModeSolid" : "Couleur unie",
9
+ "colorModeGradient" : "Dégradé",
10
+ "gradientTypeLinear" : "Linéaire",
11
+ "gradientTypeRadial" : "Radial",
12
+ "gradientTypeLinearTitle" : "Dégradé linéaire",
13
+ "gradientTypeRadialTitle" : "Dégradé radial"
7
14
  }
8
15
  }
@@ -4,6 +4,13 @@
4
4
  "defaultColors": "Default Colors",
5
5
  "gradientColors": "Gradient Colors",
6
6
 
7
- "selectThisColor": "Select this color"
7
+ "selectThisColor": "Select this color",
8
+
9
+ "colorModeSolid": "Solid Color",
10
+ "colorModeGradient": "Gradient Color",
11
+ "gradientTypeLinear": "Linear",
12
+ "gradientTypeRadial": "Radial",
13
+ "gradientTypeLinearTitle": "Linear Gradient Color",
14
+ "gradientTypeRadialTitle": "Radial Gradient Color"
8
15
  }
9
16
  }
@@ -3,6 +3,13 @@
3
3
  "newColor" : "Nova cor",
4
4
  "defaultColors" : "Cores padrão",
5
5
  "gradientColors" : "Gradientes de cores",
6
- "selectThisColor" : "Selecione esta cor"
6
+ "selectThisColor" : "Selecione esta cor",
7
+
8
+ "colorModeSolid" : "Cor sólida",
9
+ "colorModeGradient" : "Gradiente",
10
+ "gradientTypeLinear" : "Linear",
11
+ "gradientTypeRadial" : "Radial",
12
+ "gradientTypeLinearTitle" : "Gradiente linear",
13
+ "gradientTypeRadialTitle" : "Gradiente radial"
7
14
  }
8
15
  }
@@ -3,6 +3,13 @@
3
3
  "newColor" : "Nova cor",
4
4
  "defaultColors" : "Cores padrão",
5
5
  "gradientColors" : "Gradientes de cores",
6
- "selectThisColor" : "Selecione esta cor"
6
+ "selectThisColor" : "Selecione esta cor",
7
+
8
+ "colorModeSolid" : "Cor sólida",
9
+ "colorModeGradient" : "Gradiente",
10
+ "gradientTypeLinear" : "Linear",
11
+ "gradientTypeRadial" : "Radial",
12
+ "gradientTypeLinearTitle" : "Gradiente linear",
13
+ "gradientTypeRadialTitle" : "Gradiente radial"
7
14
  }
8
15
  }