fix: add i18n support for parapharmacy products and notification bell
Run Tests on Branches / Detect Changes (push) Successful in 12s
Run Tests on Branches / Backend Tests (push) Has been skipped
Run Tests on Branches / Frontend Tests (push) Successful in 1m37s
Run Tests on Branches / Frontend Mobile Tests (push) Successful in 1m52s
Run Tests on Branches / Parapharmacy API Tests (push) Has been skipped
Run Tests on Branches / PIP Platform Tests (push) Has been skipped

- Mobile: Replace hardcoded Spanish in map.tsx with t() calls
- Mobile: Add notification bell to parapharmacy product detail screen
- Mobile: Add map/product i18n keys to es.js and ca.js locales
- Web: Add useTranslation to ProductView.jsx, replace all hardcoded strings
- Web: Add 24 productView.* translation keys to es.js and ca.js locales
- Fix 'Disponible en X farmacias' to respect language setting
This commit is contained in:
Antoni Nuñez Romeu
2026-07-17 13:04:04 +02:00
parent 8a7ef81964
commit 854de92be5
7 changed files with 153 additions and 31 deletions
+4 -2
View File
@@ -7,10 +7,12 @@ import { LoadingSpinner } from '../../components/LoadingSpinner';
import { useThemeContext } from '../../components/ThemeProvider';
import { spacing, borderRadius } from '../../constants/theme';
import { Pharmacy } from '../../types';
import { useTranslation } from '../../src/i18n';
export default function MapScreen() {
const router = useRouter();
const { colors } = useThemeContext();
const { t } = useTranslation();
const [pharmacies, setPharmacies] = useState<Pharmacy[]>([]);
const [isLoading, setIsLoading] = useState(true);
const [region, setRegion] = useState({
@@ -45,7 +47,7 @@ export default function MapScreen() {
}, []);
if (isLoading) {
return <LoadingSpinner message="Cargando farmacias..." />;
return <LoadingSpinner message={t('map.loadingPharmacies')} />;
}
return (
@@ -73,7 +75,7 @@ export default function MapScreen() {
<View style={[styles.legend, { backgroundColor: colors.card }]}>
<Text style={[styles.legendText, { color: colors.text }]}>
{pharmacies.length} farmacias en el mapa
{t('map.pharmaciesOnMap', { count: pharmacies.length })}
</Text>
</View>
</View>