Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 33 additions & 22 deletions app/components/Package/DownloadAnalytics.vue
Original file line number Diff line number Diff line change
Expand Up @@ -895,10 +895,10 @@ function buildExportFilename(extension: string): string {
}

const granularityLabels = computed(() => ({
daily: $t('package.downloads.granularity_daily'),
weekly: $t('package.downloads.granularity_weekly'),
monthly: $t('package.downloads.granularity_monthly'),
yearly: $t('package.downloads.granularity_yearly'),
daily: $t('package.trends.granularity_daily'),
weekly: $t('package.trends.granularity_weekly'),
monthly: $t('package.trends.granularity_monthly'),
yearly: $t('package.trends.granularity_yearly'),
}))

function getGranularityLabel(granularity: ChartTimeGranularity) {
Expand Down Expand Up @@ -1321,18 +1321,18 @@ const chartConfig = computed(() => {
userOptions: {
buttons: { pdf: false, labels: false, fullscreen: false, table: false, tooltip: false },
buttonTitles: {
csv: $t('package.downloads.download_file', { fileType: 'CSV' }),
img: $t('package.downloads.download_file', { fileType: 'PNG' }),
svg: $t('package.downloads.download_file', { fileType: 'SVG' }),
annotator: $t('package.downloads.toggle_annotator'),
csv: $t('package.trends.download_file', { fileType: 'CSV' }),
img: $t('package.trends.download_file', { fileType: 'PNG' }),
svg: $t('package.trends.download_file', { fileType: 'SVG' }),
annotator: $t('package.trends.toggle_annotator'),
},
callbacks: {
img: ({ imageUri }: { imageUri: string }) => {
loadFile(imageUri, buildExportFilename('png'))
},
csv: (csvStr: string) => {
const PLACEHOLDER_CHAR = '\0'
const multilineDateTemplate = $t('package.downloads.date_range_multiline', {
const multilineDateTemplate = $t('package.trends.date_range_multiline', {
start: PLACEHOLDER_CHAR,
end: PLACEHOLDER_CHAR,
})
Expand Down Expand Up @@ -1360,8 +1360,9 @@ const chartConfig = computed(() => {
fontSize: isMobile.value ? 24 : 16,
color: pending.value ? colors.value.border : colors.value.fgSubtle,
axis: {
yLabel: $t('package.downloads.y_axis_label', {
yLabel: $t('package.trends.y_axis_label', {
granularity: getGranularityLabel(selectedGranularity.value),
facet: $t('package.trends.items.downloads'),
}),
xLabel: isMultiPackageMode.value ? '' : xAxisLabel.value, // for multiple series, names are displayed in the chart's legend
yLabelOffsetX: 12,
Expand Down Expand Up @@ -1478,7 +1479,7 @@ const chartConfig = computed(() => {
for="granularity"
class="text-3xs font-mono text-fg-subtle tracking-wide uppercase"
>
{{ $t('package.downloads.granularity') }}
{{ $t('package.trends.granularity') }}
</label>

<div
Expand All @@ -1490,10 +1491,18 @@ const chartConfig = computed(() => {
:disabled="pending"
class="w-full px-2.5 py-1.75 bg-bg-subtle font-mono text-sm text-fg outline-none appearance-none focus-visible:outline-accent/70"
>
<option value="daily">{{ $t('package.downloads.granularity_daily') }}</option>
<option value="weekly">{{ $t('package.downloads.granularity_weekly') }}</option>
<option value="monthly">{{ $t('package.downloads.granularity_monthly') }}</option>
<option value="yearly">{{ $t('package.downloads.granularity_yearly') }}</option>
<option value="daily">
{{ $t('package.trends.granularity_daily') }}
</option>
<option value="weekly">
{{ $t('package.trends.granularity_weekly') }}
</option>
<option value="monthly">
{{ $t('package.trends.granularity_monthly') }}
</option>
<option value="yearly">
{{ $t('package.trends.granularity_yearly') }}
</option>
</select>
</div>
</div>
Expand All @@ -1504,7 +1513,7 @@ const chartConfig = computed(() => {
for="startDate"
class="text-3xs font-mono text-fg-subtle tracking-wide uppercase"
>
{{ $t('package.downloads.start_date') }}
{{ $t('package.trends.start_date') }}
</label>
<div
class="flex items-center gap-2 px-2.5 py-1.75 bg-bg-subtle border border-border rounded-md focus-within:(border-border-hover ring-2 ring-accent/70)"
Expand All @@ -1522,7 +1531,7 @@ const chartConfig = computed(() => {

<div class="flex flex-col gap-1">
<label for="endDate" class="text-3xs font-mono text-fg-subtle tracking-wide uppercase">
{{ $t('package.downloads.end_date') }}
{{ $t('package.trends.end_date') }}
</label>
<div
class="flex items-center gap-2 px-2.5 py-1.75 bg-bg-subtle border border-border rounded-md focus-within:(border-border-hover ring-2 ring-accent/70)"
Expand Down Expand Up @@ -1656,9 +1665,7 @@ const chartConfig = computed(() => {
stroke-linecap="round"
/>
</svg>
<span class="text-fg-subtle">{{
$t('package.downloads.legend_estimation')
}}</span>
<span class="text-fg-subtle">{{ $t('package.trends.legend_estimation') }}</span>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash

# First, let's look at the actual file and line mentioned
echo "=== Checking the actual code at the specified location ==="
if [ -f "app/components/Package/DownloadAnalytics.vue" ]; then
  sed -n '1665,1671p' app/components/Package/DownloadAnalytics.vue
else
  echo "File not found at expected path"
fi

echo ""
echo "=== Locales directory structure ==="
find i18n -type d -name locales | head -5

echo ""
echo "=== Checking for legend_estimation key across locales ==="
echo "Files containing 'legend_estimation':"
rg -l 'legend_estimation' i18n/

echo ""
echo "=== Total locale files ==="
locale_count=$(find i18n -name "*.json" -o -name "*.js" -o -name "*.ts" | grep -i locale | wc -l)
echo "Total locale files: $locale_count"

echo ""
echo "=== Checking package.trends translations specifically ==="
rg 'package.trends' i18n/ -A 2 -B 2 | head -50

Repository: npmx-dev/npmx.dev

Length of output: 705


🏁 Script executed:

#!/bin/bash

# List all locale files
echo "=== All locale files in i18n/locales ==="
find i18n/locales -name "*.json" -type f | sort

echo ""
echo "=== Locale files WITH legend_estimation key ==="
rg -l 'legend_estimation' i18n/locales | sort

echo ""
echo "=== Comparing to identify missing locales ==="
all_locales=$(find i18n/locales -name "*.json" -type f | sort)
with_key=$(rg -l 'legend_estimation' i18n/locales | sort)

echo "Locales MISSING the legend_estimation key:"
comm -23 <(find i18n/locales -name "*.json" -type f | sort) <(rg -l 'legend_estimation' i18n/locales | sort)

echo ""
echo "=== Checking the structure in en.json ==="
rg -A 2 -B 2 'legend_estimation' i18n/locales/en.json

Repository: npmx-dev/npmx.dev

Length of output: 1271


Add legend_estimation translation key to all 24 missing locale files.

The package.trends.legend_estimation key is currently only defined in en.json, fr-FR.json, and zh-CN.json. It is missing from 24 locale files including en-GB.json, en-US.json, de-DE.json, ja-JP.json, es-ES.json, ru-RU.json, pt-BR.json, and others. Users in these locales will see the raw translation key instead of the translated text "Estimation".

</div>
</div>
</template>
Expand Down Expand Up @@ -1747,7 +1754,11 @@ const chartConfig = computed(() => {
v-if="!chartData.dataset && !pending"
class="min-h-[260px] flex items-center justify-center text-fg-subtle font-mono text-sm"
>
{{ $t('package.downloads.no_data') }}
{{
$t('package.trends.no_data', {
facet: $t('package.trends.items.downloads'),
})
}}
Comment on lines +1757 to +1761
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Find locale files directory
echo "=== Finding locale files ==="
find . -type f -name "*.json" | grep -E "(locale|i18n)" | head -20

echo ""
echo "=== Checking no_data key format across locales ==="
rg -n "no_data" i18n/locales/ --type json | grep "package.trends"

Repository: npmx-dev/npmx.dev

Length of output: 653


🏁 Script executed:

#!/bin/bash
# Search for no_data in locale files more broadly
echo "=== Searching for no_data in locale files ==="
rg -n "no_data" i18n/locales/ --type json -B2 -A2 | head -50

echo ""
echo "=== Checking the exact context in DownloadAnalytics.vue ==="
grep -n "package.trends.no_data" app/components/Package/DownloadAnalytics.vue

Repository: npmx-dev/npmx.dev

Length of output: 876


🏁 Script executed:

#!/bin/bash
# Extract all no_data translations from all locale files
echo "=== All no_data translations in locale files ==="
rg -n "no_data" i18n/locales/ --type json -A0 | sed 's/^[^:]*:\([0-9]*\):.*/Line \1:/' | paste -d ' ' - <(rg -n "no_data" i18n/locales/ --type json -A0 | sed 's/.*: //')

echo ""
echo "=== Checking if any locale has {facet} in no_data ==="
rg '"no_data".*\{facet\}' i18n/locales/ --type json

Repository: npmx-dev/npmx.dev

Length of output: 225


🏁 Script executed:

#!/bin/bash
# Extract all no_data translations from all locale files
echo "=== All no_data translations in locale files ==="
rg '"no_data"' i18n/locales/ --type json

echo ""
echo "=== Checking if any locale has {facet} in no_data value ==="
rg '"no_data".*:.*\{facet\}' i18n/locales/ --type json

Repository: npmx-dev/npmx.dev

Length of output: 297


🏁 Script executed:

#!/bin/bash
# Check the full package.trends structure
echo "=== Full package.trends sections in all locales ==="
rg '"trends"' i18n/locales/ --type json -A10 | head -80

echo ""
echo "=== Check DownloadAnalytics.vue context ==="
sed -n '1750,1770p' app/components/Package/DownloadAnalytics.vue

Repository: npmx-dev/npmx.dev

Length of output: 5106


🏁 Script executed:

#!/bin/bash
# Check all locale files for no_data key
echo "=== Checking all locale files for no_data ==="
for file in i18n/locales/*.json; do
  if rg -q '"no_data"' "$file"; then
    echo "HAS no_data: $(basename $file)"
    rg '"no_data".*' "$file"
  else
    echo "MISSING no_data: $(basename $file)"
  fi
done

Repository: npmx-dev/npmx.dev

Length of output: 928


🏁 Script executed:

#!/bin/bash
# Check locale configuration/fallback
echo "=== Check i18n config for fallback behavior ==="
find . -type f \( -name "*.ts" -o -name "*.js" -o -name "*.config.*" \) | xargs grep -l "i18n\|locale" | grep -E "config|setup" | head -10

echo ""
echo "=== Check git history for DownloadAnalytics.vue changes ==="
git log --oneline -20 app/components/Package/DownloadAnalytics.vue

Repository: npmx-dev/npmx.dev

Length of output: 292


🏁 Script executed:

#!/bin/bash
# Check i18n config for fallback behavior
echo "=== i18n config ==="
cat i18n/i18n.config.ts

echo ""
echo "=== Nuxt i18n config ==="
grep -A20 "i18n" nuxt.config.ts | head -40

Repository: npmx-dev/npmx.dev

Length of output: 1454


🏁 Script executed:

#!/bin/bash
# Check locale configuration
echo "=== Current locales configuration ==="
cat config/i18n.ts | head -50

Repository: npmx-dev/npmx.dev

Length of output: 2022


🏁 Script executed:

#!/bin/bash
# Continue reading the locale configuration
echo "=== Locale configuration continued ==="
cat config/i18n.ts | sed -n '40,150p'

echo ""
echo "=== Check how locales are loaded ==="
grep -n "import.*locale" i18n/i18n.config.ts
grep -rn "glob.*json" i18n/ --type ts | head -10

Repository: npmx-dev/npmx.dev

Length of output: 3943


🏁 Script executed:

#!/bin/bash
# Continue reading the complete locale configuration
echo "=== All locales in config ==="
grep -n "code:" config/i18n.ts | grep -E "^\s+code:" | head -40

echo ""
echo "=== Check loading mechanism ==="
grep -n "fallback" i18n/i18n.config.ts

echo ""
echo "=== Check available locales list ==="
grep -n "currentLocales" config/i18n.ts | tail -5

Repository: npmx-dev/npmx.dev

Length of output: 528


🏁 Script executed:

#!/bin/bash
# Check buildLocales function
echo "=== buildLocales function ==="
grep -A30 "function buildLocales\|const buildLocales" config/i18n.ts

echo ""
echo "=== Check en-US fallback locale ==="
grep -E "code.*en-US|en-US.*code" config/i18n.ts -A2 -B2

Repository: npmx-dev/npmx.dev

Length of output: 1292


🏁 Script executed:

#!/bin/bash
# Verify the recent commit to understand intent
echo "=== Recent commit details ==="
git show --stat 5926ce9

echo ""
echo "=== Full commit message ==="
git log -1 --format=%B 5926ce9

Repository: npmx-dev/npmx.dev

Length of output: 35949


Remove the unnecessary facet parameter from the translation call.

The commit message indicates the facet is not relevant to this message ("the facet is not relevant after all"), and the translations confirm this intent: only en.json and fr-FR.json contain the no_data key, and neither includes a {facet} placeholder. All other locales will fall back to en.json. The facet parameter is being silently ignored across all locales, so it should be removed from the code:

Current code
$t('package.trends.no_data', {
  facet: $t('package.trends.items.downloads'),
})

Simplify to:

$t('package.trends.no_data')

</div>

<div
Expand All @@ -1756,7 +1767,7 @@ const chartConfig = computed(() => {
aria-live="polite"
class="absolute top-1/2 inset-is-1/2 -translate-x-1/2 -translate-y-1/2 text-xs text-fg-subtle font-mono bg-bg/70 backdrop-blur px-3 py-2 rounded-md border border-border"
>
{{ $t('package.downloads.loading') }}
{{ $t('package.trends.loading') }}
</div>
</div>
</template>
Expand Down
4 changes: 2 additions & 2 deletions app/components/Package/WeeklyDownloadStats.vue
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ watch(
const dataset = computed(() =>
weeklyDownloads.value.map(d => ({
value: d?.downloads ?? 0,
period: $t('package.downloads.date_range', {
period: $t('package.trends.date_range', {
start: d.weekStart ?? '-',
end: d.weekEnd ?? '-',
}),
Expand Down Expand Up @@ -267,7 +267,7 @@ const config = computed(() => {
</ClientOnly>
</template>
<p v-else class="py-2 text-sm font-mono text-fg-subtle">
{{ $t('package.downloads.no_data') }}
{{ $t('package.trends.no_data') }}
</p>
</div>
</CollapsibleSection>
Expand Down
2 changes: 1 addition & 1 deletion app/pages/compare.vue
Original file line number Diff line number Diff line change
Expand Up @@ -243,7 +243,7 @@ useSeoMeta({
id="comparison-heading"
class="text-xs text-fg-subtle uppercase tracking-wider mb-4 mt-10"
>
{{ $t('package.downloads.title') }}
{{ $t('compare.facets.trends.title') }}
</h2>

<CompareLineChart :packages="packages.filter(p => p !== NO_DEPENDENCY_ID)" />
Expand Down
30 changes: 15 additions & 15 deletions i18n/locales/ar.json
Original file line number Diff line number Diff line change
Expand Up @@ -284,23 +284,9 @@
},
"downloads": {
"title": "التنزيلات الأسبوعية",
"date_range": "من {start} إلى {end}",
"date_range_multiline": "من {start}\nإلى {end}",
"analyze": "تحليل التنزيلات",
"community_distribution": "عرض توزيع تبنّي المجتمع",
"modal_title": "التنزيلات",
"granularity": "مستوى التفصيل",
"granularity_daily": "يومي",
"granularity_weekly": "أسبوعي",
"granularity_monthly": "شهري",
"granularity_yearly": "سنوي",
"start_date": "البداية",
"end_date": "النهاية",
"no_data": "لا تتوفر بيانات تنزيل",
"loading": "جارٍ التحميل…",
"y_axis_label": "تنزيلات {granularity}ة",
"download_file": "تنزيل {fileType}",
"toggle_annotator": "إظهار/إخفاء الشروح التوضيحية"
"modal_title": "التنزيلات"
},
"install_scripts": {
"title": "سكربتات التثبيت",
Expand Down Expand Up @@ -384,6 +370,20 @@
"published": "الأحدث نشرًا",
"name_asc": "الاسم (A-Z)",
"name_desc": "الاسم (Z-A)"
},
"trends": {
"granularity": "مستوى التفصيل",
"granularity_daily": "يومي",
"granularity_weekly": "أسبوعي",
"granularity_monthly": "شهري",
"granularity_yearly": "سنوي",
"start_date": "البداية",
"end_date": "النهاية",
"loading": "جارٍ التحميل…",
"date_range": "من {start} إلى {end}",
"date_range_multiline": "من {start}\nإلى {end}",
"download_file": "تنزيل {fileType}",
"toggle_annotator": "إظهار/إخفاء الشروح التوضيحية"
}
Comment on lines +374 to 387
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Search for no_data and items keys in locale files
echo "=== Searching for 'no_data' in trends namespace ==="
rg -n '"no_data"' i18n/locales/

echo ""
echo "=== Searching for 'items' object in trends namespace ==="
rg -n -B2 -A3 '"items"' i18n/locales/ | head -100

Repository: npmx-dev/npmx.dev

Length of output: 5246


🏁 Script executed:

#!/bin/bash
# Check the complete trends block in ar.json
rg -n -B5 -A20 '"trends"' i18n/locales/ar.json | head -50

Repository: npmx-dev/npmx.dev

Length of output: 1065


Add missing no_data, y_axis_label, and items keys to the trends block.

The trends block (lines 374–387) is missing three required keys that exist in other locale files. Tests are failing because WeeklyDownloadStats.vue calls $t('package.trends.no_data', { facet: $t('package.trends.items.downloads') }), but these keys are absent.

Add:

  • no_data: Template string like "لا تتوفر بيانات {facet}" (matching the pattern in en.json: "No data available")
  • y_axis_label: Template string for axis labelling (e.g., "{facet} {granularity}" following en.json: "{granularity} {facet}" or fr-FR.json: "{facet} {granularity}")
  • items.downloads: The downloads facet label (e.g., "التنزيلات" to match en.json: "Downloads" and fr-FR.json: "Téléchargements")

},
"connector": {
Expand Down
30 changes: 15 additions & 15 deletions i18n/locales/az-AZ.json
Original file line number Diff line number Diff line change
Expand Up @@ -219,22 +219,8 @@
},
"downloads": {
"title": "Həftəlik Endirmələr",
"date_range": "{start} - {end}",
"date_range_multiline": "{start}\n- {end}",
"analyze": "Endirmələri təhlil et",
"modal_title": "Endirmələr",
"granularity": "Dərəcəlilik",
"granularity_daily": "Günlük",
"granularity_weekly": "Həftəlik",
"granularity_monthly": "Aylıq",
"granularity_yearly": "İllik",
"start_date": "Başlanğıc",
"end_date": "Son",
"no_data": "Endirmə məlumatı mövcud deyil",
"loading": "Yüklənir...",
"y_axis_label": "{granularity} endirmələr",
"download_file": "{fileType} endir",
"toggle_annotator": "Annotator keçid"
"modal_title": "Endirmələr"
},
"install_scripts": {
"title": "Quraşdırma Skriptləri",
Expand Down Expand Up @@ -315,6 +301,20 @@
"downloads": "Ən çox endirilən",
"name_asc": "Ad (A-Z)",
"name_desc": "Ad (Z-A)"
},
"trends": {
"granularity": "Dərəcəlilik",
"granularity_daily": "Günlük",
"granularity_weekly": "Həftəlik",
"granularity_monthly": "Aylıq",
"granularity_yearly": "İllik",
"start_date": "Başlanğıc",
"end_date": "Son",
"loading": "Yüklənir...",
"date_range": "{start} - {end}",
"date_range_multiline": "{start}\n- {end}",
"download_file": "{fileType} endir",
"toggle_annotator": "Annotator keçid"
Comment on lines +304 to +317
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Add missing package.trends keys to avoid fallback/missing translations.
The new trends block doesn’t include empty-state or facet-label keys that are now referenced elsewhere (for example, package.trends.no_data and facet labels). This will fall back or surface missing-key placeholders for az-AZ. Please mirror the base locale’s full package.trends key set here, including any singular facet label if required.

}
},
"connector": {
Expand Down
30 changes: 15 additions & 15 deletions i18n/locales/cs-CZ.json
Original file line number Diff line number Diff line change
Expand Up @@ -254,22 +254,8 @@
},
"downloads": {
"title": "Týdenní stažení",
"date_range": "od {start} do {end}",
"date_range_multiline": "od {start}\ndo {end}",
"analyze": "Analyzovat stažení",
"modal_title": "Stažení",
"granularity": "Rozlišení",
"granularity_daily": "Denně",
"granularity_weekly": "Týdně",
"granularity_monthly": "Měsíčně",
"granularity_yearly": "Ročně",
"start_date": "Od",
"end_date": "Do",
"no_data": "Žádná data o stažení nejsou k dispozici",
"loading": "Načítání...",
"y_axis_label": "Stažení {granularity}",
"download_file": "Stáhnout {fileType}",
"toggle_annotator": "Přepnout popisovač"
"modal_title": "Stažení"
},
"install_scripts": {
"title": "Instalační skripty",
Expand Down Expand Up @@ -353,6 +339,20 @@
"published": "Nedávno publikováno",
"name_asc": "Název (A-Z)",
"name_desc": "Název (Z-A)"
},
"trends": {
"granularity": "Rozlišení",
"granularity_daily": "Denně",
"granularity_weekly": "Týdně",
"granularity_monthly": "Měsíčně",
"granularity_yearly": "Ročně",
"start_date": "Od",
"end_date": "Do",
"loading": "Načítání...",
"date_range": "od {start} do {end}",
"date_range_multiline": "od {start}\ndo {end}",
"download_file": "Stáhnout {fileType}",
"toggle_annotator": "Přepnout popisovač"
}
Comment on lines +343 to 356
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Add missing translation keys to the trends section.

The trends section is missing several keys that are used by DownloadAnalytics.vue and exist in the base English locale:

  • no_data – used for empty state message
  • y_axis_label – used for chart Y-axis label
  • items (with downloads sub-key) – used as the facet parameter
  • legend_estimation – used in chart legend for estimation indicator

Without these translations, Czech users will see fallback English text or raw keys.

Suggested additions to trends section
     "trends": {
       "granularity": "Rozlišení",
       "granularity_daily": "Denně",
       "granularity_weekly": "Týdně",
       "granularity_monthly": "Měsíčně",
       "granularity_yearly": "Ročně",
       "start_date": "Od",
       "end_date": "Do",
       "loading": "Načítání...",
       "date_range": "od {start} do {end}",
       "date_range_multiline": "od {start}\ndo {end}",
       "download_file": "Stáhnout {fileType}",
-      "toggle_annotator": "Přepnout popisovač"
+      "toggle_annotator": "Přepnout popisovač",
+      "no_data": "Žádná data {facet} nejsou k dispozici",
+      "y_axis_label": "{granularity} {facet}",
+      "legend_estimation": "odhad",
+      "items": {
+        "downloads": "stažení"
+      }
     }
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"trends": {
"granularity": "Rozlišení",
"granularity_daily": "Denně",
"granularity_weekly": "Týdně",
"granularity_monthly": "Měsíčně",
"granularity_yearly": "Ročně",
"start_date": "Od",
"end_date": "Do",
"loading": "Načítání...",
"date_range": "od {start} do {end}",
"date_range_multiline": "od {start}\ndo {end}",
"download_file": "Stáhnout {fileType}",
"toggle_annotator": "Přepnout popisovač"
}
"trends": {
"granularity": "Rozlišení",
"granularity_daily": "Denně",
"granularity_weekly": "Týdně",
"granularity_monthly": "Měsíčně",
"granularity_yearly": "Ročně",
"start_date": "Od",
"end_date": "Do",
"loading": "Načítání...",
"date_range": "od {start} do {end}",
"date_range_multiline": "od {start}\ndo {end}",
"download_file": "Stáhnout {fileType}",
"toggle_annotator": "Přepnout popisovač",
"no_data": "Žádná data {facet} nejsou k dispozici",
"y_axis_label": "{granularity} {facet}",
"legend_estimation": "odhad",
"items": {
"downloads": "stažení"
}
}

},
"connector": {
Expand Down
30 changes: 15 additions & 15 deletions i18n/locales/de-DE.json
Original file line number Diff line number Diff line change
Expand Up @@ -285,23 +285,9 @@
},
"downloads": {
"title": "Wöchentliche Downloads",
"date_range": "{start} bis {end}",
"date_range_multiline": "{start}\nbis {end}",
"analyze": "Downloads analysieren",
"community_distribution": "Community-Adoptionsverteilung ansehen",
"modal_title": "Downloads",
"granularity": "Granularität",
"granularity_daily": "Täglich",
"granularity_weekly": "Wöchentlich",
"granularity_monthly": "Monatlich",
"granularity_yearly": "Jährlich",
"start_date": "Start",
"end_date": "Ende",
"no_data": "Keine Download-Daten verfügbar",
"loading": "Lädt...",
"y_axis_label": "{granularity} Downloads",
"download_file": "{fileType} herunterladen",
"toggle_annotator": "Annotation umschalten"
"modal_title": "Downloads"
},
"install_scripts": {
"title": "Installationsskripte",
Expand Down Expand Up @@ -385,6 +371,20 @@
"published": "Zuletzt veröffentlicht",
"name_asc": "Name (A-Z)",
"name_desc": "Name (Z-A)"
},
"trends": {
"granularity": "Granularität",
"granularity_daily": "Täglich",
"granularity_weekly": "Wöchentlich",
"granularity_monthly": "Monatlich",
"granularity_yearly": "Jährlich",
"start_date": "Start",
"end_date": "Ende",
"loading": "Lädt...",
"date_range": "{start} bis {end}",
"date_range_multiline": "{start}\nbis {end}",
"download_file": "{fileType} herunterladen",
"toggle_annotator": "Annotation umschalten"
}
},
"connector": {
Expand Down
28 changes: 18 additions & 10 deletions i18n/locales/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -284,26 +284,31 @@
"show_more": "(show {count} more)",
"show_less": "(show fewer)"
},
"downloads": {
"title": "Weekly Downloads",
"date_range": "{start} to {end}",
"date_range_multiline": "{start}\nto {end}",
"analyze": "Analyze downloads",
"community_distribution": "View community adoption distribution",
"modal_title": "Downloads",
"trends": {
"granularity": "Granularity",
"granularity_daily": "Daily",
"granularity_weekly": "Weekly",
"granularity_monthly": "Monthly",
"granularity_yearly": "Yearly",
"start_date": "Start",
"end_date": "End",
"no_data": "No download data available",
"loading": "Loading...",
"y_axis_label": "{granularity} downloads",
"date_range": "{start} to {end}",
"date_range_multiline": "{start}\nto {end}",
"download_file": "Download {fileType}",
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Confusingly, this is not about downloads (the facet); this is about downloading the data in the trend chart. So it goes under trends, not downloads 😆.

"toggle_annotator": "Toggle annotator",
"legend_estimation": "Estimation"
"legend_estimation": "Estimation",
"no_data": "No data available",
"y_axis_label": "{granularity} {facet}",
"items": {
"downloads": "Downloads"
}
},
"downloads": {
"title": "Weekly Downloads",
"analyze": "Analyze downloads",
"community_distribution": "View community adoption distribution",
"modal_title": "Downloads"
},
"install_scripts": {
"title": "Install Scripts",
Expand Down Expand Up @@ -934,6 +939,9 @@
"types_none": "None",
"vulnerabilities_summary": "{count} ({critical}C/{high}H)",
"up_to_you": "Up to you!"
},
"trends": {
"title": "Weekly Downloads"
}
}
},
Expand Down
Loading
Loading