fix: localize UI text to Macedonian and fix view count display
- Change date format from 'short' to 'long' month names in Macedonian - Translate 'views' to 'прегледи' across all components - Translate 'shares' to 'споделувања' - Translate 'updates' to 'ажурирања' - Translate 'By' to 'Од' for author attribution - Translate 'Back to articles' to 'Назад кон вести' - Translate archive page headers to Macedonian - Translate auto-scroll button text to Macedonian - Translate connection status to Macedonian - Add fallback to 0 for undefined view counts (|| 0)
This commit is contained in:
parent
46bbeed525
commit
aa43f50a8c
@ -165,12 +165,12 @@ export function LiveBlogViewer({ slug, className }: LiveBlogViewerProps) {
|
|||||||
isConnected ? 'bg-green-500' : 'bg-red-500'
|
isConnected ? 'bg-green-500' : 'bg-red-500'
|
||||||
)} />
|
)} />
|
||||||
<span>
|
<span>
|
||||||
{isConnected ? 'Connected' : `Reconnecting... (${reconnectAttempts})`}
|
{isConnected ? 'Поврзано' : `Се поврзува... (${reconnectAttempts})`}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
<span>{liveBlog.viewCount} views</span>
|
<span>{liveBlog.viewCount || 0} прегледи</span>
|
||||||
<span>{updates.length} updates</span>
|
<span>{updates.length} ажурирања</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="flex items-center gap-2">
|
<div className="flex items-center gap-2">
|
||||||
@ -179,7 +179,7 @@ export function LiveBlogViewer({ slug, className }: LiveBlogViewerProps) {
|
|||||||
size="sm"
|
size="sm"
|
||||||
onClick={handleAutoScrollToggle}
|
onClick={handleAutoScrollToggle}
|
||||||
>
|
>
|
||||||
{autoScroll ? 'Auto-scroll ON' : 'Auto-scroll OFF'}
|
{autoScroll ? 'Авто-скрол ВКЛУЧЕН' : 'Авто-скрол ИСКЛУЧЕН'}
|
||||||
</Button>
|
</Button>
|
||||||
{!isConnected && (
|
{!isConnected && (
|
||||||
<Button
|
<Button
|
||||||
|
|||||||
@ -204,11 +204,11 @@ export function PinnedLiveBlogSidebar({
|
|||||||
<div className="mt-2 flex items-center gap-3 text-xs text-muted-foreground">
|
<div className="mt-2 flex items-center gap-3 text-xs text-muted-foreground">
|
||||||
<div className="flex items-center gap-1">
|
<div className="flex items-center gap-1">
|
||||||
<MessageSquare className="w-3 h-3" />
|
<MessageSquare className="w-3 h-3" />
|
||||||
<span>{blog.updates?.length || 0} updates</span>
|
<span>{blog.updates?.length || 0} ажурирања</span>
|
||||||
</div>
|
</div>
|
||||||
<div className="flex items-center gap-1">
|
<div className="flex items-center gap-1">
|
||||||
<Eye className="w-3 h-3" />
|
<Eye className="w-3 h-3" />
|
||||||
<span>{blog.viewCount} views</span>
|
<span>{blog.viewCount || 0} прегледи</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</Link>
|
</Link>
|
||||||
|
|||||||
@ -83,7 +83,7 @@ export function HeroArticle() {
|
|||||||
<span>
|
<span>
|
||||||
{new Date(article.createdAt).toLocaleDateString('mk-MK', {
|
{new Date(article.createdAt).toLocaleDateString('mk-MK', {
|
||||||
day: 'numeric',
|
day: 'numeric',
|
||||||
month: 'short',
|
month: 'long',
|
||||||
year: 'numeric',
|
year: 'numeric',
|
||||||
})}
|
})}
|
||||||
</span>
|
</span>
|
||||||
@ -98,7 +98,7 @@ export function HeroArticle() {
|
|||||||
|
|
||||||
<div className="flex items-center gap-2">
|
<div className="flex items-center gap-2">
|
||||||
<Eye className="w-4 h-4" />
|
<Eye className="w-4 h-4" />
|
||||||
<span>{article.views} views</span>
|
<span>{article.views || 0} прегледи</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -132,7 +132,7 @@ export function HeroArticle() {
|
|||||||
<div className="font-body text-xs uppercase tracking-wider text-muted-foreground">
|
<div className="font-body text-xs uppercase tracking-wider text-muted-foreground">
|
||||||
<span className="font-bold text-foreground">
|
<span className="font-bold text-foreground">
|
||||||
{(article.facebookShares || 0) + (article.twitterShares || 0) + (article.whatsappShares || 0) + (article.telegramShares || 0)}
|
{(article.facebookShares || 0) + (article.twitterShares || 0) + (article.whatsappShares || 0) + (article.telegramShares || 0)}
|
||||||
</span> shares
|
</span> споделувања
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -28,8 +28,8 @@ export function ArchiveComponent() {
|
|||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
<div className="mb-8">
|
<div className="mb-8">
|
||||||
<h1 className="text-3xl font-bold">Articles</h1>
|
<h1 className="text-3xl font-bold">Архива</h1>
|
||||||
<p className="text-muted-foreground">Latest news and articles</p>
|
<p className="text-muted-foreground">Најнови вести и статии</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
|
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
|
||||||
@ -58,12 +58,12 @@ export function ArchiveComponent() {
|
|||||||
<span>
|
<span>
|
||||||
{new Date(article.createdAt).toLocaleDateString('mk-MK', {
|
{new Date(article.createdAt).toLocaleDateString('mk-MK', {
|
||||||
day: 'numeric',
|
day: 'numeric',
|
||||||
month: 'short',
|
month: 'long',
|
||||||
year: 'numeric',
|
year: 'numeric',
|
||||||
})}
|
})}
|
||||||
</span>
|
</span>
|
||||||
<span>•</span>
|
<span>•</span>
|
||||||
<span>{article.views} views</span>
|
<span>{article.views || 0} прегледи</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<SocialShareButtons
|
<SocialShareButtons
|
||||||
|
|||||||
@ -49,7 +49,7 @@ export function ArticleDetailComponent({ id }: { id: string }) {
|
|||||||
<path d="m15 18-6-6 6-6" />
|
<path d="m15 18-6-6 6-6" />
|
||||||
<path d="M19 6H5" />
|
<path d="M19 6H5" />
|
||||||
</svg>
|
</svg>
|
||||||
Back to articles
|
Назад кон вести
|
||||||
</Link>
|
</Link>
|
||||||
|
|
||||||
<h1 className="text-4xl font-bold mb-6">{data.title}</h1>
|
<h1 className="text-4xl font-bold mb-6">{data.title}</h1>
|
||||||
@ -63,11 +63,11 @@ export function ArticleDetailComponent({ id }: { id: string }) {
|
|||||||
})}
|
})}
|
||||||
</span>
|
</span>
|
||||||
<span>•</span>
|
<span>•</span>
|
||||||
<span>{data.views} views</span>
|
<span>{data.views || 0} прегледи</span>
|
||||||
{data.author && (
|
{data.author && (
|
||||||
<>
|
<>
|
||||||
<span>•</span>
|
<span>•</span>
|
||||||
<span>By {data.author.name}</span>
|
<span>Од {data.author.name}</span>
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -63,13 +63,13 @@ export function LiveBlogsComponent() {
|
|||||||
|
|
||||||
<div className="flex items-center justify-between text-sm text-muted-foreground">
|
<div className="flex items-center justify-between text-sm text-muted-foreground">
|
||||||
<div className="flex items-center gap-4">
|
<div className="flex items-center gap-4">
|
||||||
<span>{liveBlog.viewCount} views</span>
|
<span>{liveBlog.viewCount || 0} прегледи</span>
|
||||||
<span>{liveBlog.updates?.length || 0} updates</span>
|
<span>{liveBlog.updates?.length || 0} ажурирања</span>
|
||||||
</div>
|
</div>
|
||||||
<span>
|
<span>
|
||||||
{new Date(liveBlog.createdAt).toLocaleDateString('mk-MK', {
|
{new Date(liveBlog.createdAt).toLocaleDateString('mk-MK', {
|
||||||
day: 'numeric',
|
day: 'numeric',
|
||||||
month: 'short',
|
month: 'long',
|
||||||
year: 'numeric',
|
year: 'numeric',
|
||||||
})}
|
})}
|
||||||
</span>
|
</span>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user