Compare commits
12 Commits
dependabot
...
main
Author | SHA1 | Date | |
---|---|---|---|
fe5c0d5113 | |||
3ae870047a | |||
2a360a6875 | |||
bd04bb63a1 | |||
5f98d9ebfd | |||
9ef2a92d60 | |||
03c957e654 | |||
b2cc7e7016 | |||
da2f4f6c86 | |||
3661d2b008 | |||
0e476b546d | |||
d331a73a85 |
@ -46,7 +46,7 @@ class CitiesController < ApplicationController
|
|||||||
set_meta_tags(
|
set_meta_tags(
|
||||||
title: @city.name,
|
title: @city.name,
|
||||||
description: "Experience #{@city.name}'s weather through AI-generated art. Daily updates of weather conditions visualized through artificial intelligence.",
|
description: "Experience #{@city.name}'s weather through AI-generated art. Daily updates of weather conditions visualized through artificial intelligence.",
|
||||||
keywords: "#{@city.name}, #{@city.country.name}, weather art, AI visualization",
|
keywords: "#{@city.name}, #{@city.country.name}, ai, ai web, ai art, ai weather, weather art, AI visualization",
|
||||||
og: {
|
og: {
|
||||||
image: @city.latest_weather_art&.image&.attached? ? url_for(@city.latest_weather_art.image) : nil
|
image: @city.latest_weather_art&.image&.attached? ? url_for(@city.latest_weather_art.image) : nil
|
||||||
}
|
}
|
||||||
|
@ -1,33 +1,126 @@
|
|||||||
class SitemapsController < ApplicationController
|
class SitemapsController < ApplicationController
|
||||||
|
include SitemapsHelper
|
||||||
|
before_action :set_bucket_name
|
||||||
|
|
||||||
|
def index
|
||||||
|
@sitemaps = list_sitemaps
|
||||||
|
respond_to do |format|
|
||||||
|
format.html
|
||||||
|
format.xml { render_sitemap_index }
|
||||||
|
end
|
||||||
|
rescue Aws::S3::Errors::ServiceError => e
|
||||||
|
Rails.logger.error "S3 Error: #{e.message}"
|
||||||
|
render status: :internal_server_error
|
||||||
|
end
|
||||||
|
|
||||||
def show
|
def show
|
||||||
path = params[:path]
|
path = params[:path]
|
||||||
bucket_name =
|
key = "sitemaps/#{path}"
|
||||||
Rails.env.production? ?
|
|
||||||
ENV.fetch("AWS_BUCKET", Rails.application.credentials.dig(:minio, :bucket)) :
|
Rails.logger.info "Requesting sitemap: #{path}"
|
||||||
ENV.fetch("AWS_DEV_BUCKET", Rails.application.credentials.dig(:minio_dev, :bucket))
|
|
||||||
Rails.logger.info "Sitemap: #{path}"
|
|
||||||
|
|
||||||
begin
|
begin
|
||||||
s3_client = Aws::S3::Client.new
|
# 检查文件是否存在
|
||||||
response = s3_client.get_object(
|
s3_client.head_object(
|
||||||
bucket: bucket_name,
|
bucket: @bucket_name,
|
||||||
key: "sitemaps/#{path}"
|
key: key
|
||||||
)
|
)
|
||||||
|
|
||||||
expires_in 12.hours, public: true
|
# 生成预签名URL,设置15分钟有效期
|
||||||
content_type = response.content_type || "application/xml"
|
signer = Aws::S3::Presigner.new(client: s3_client)
|
||||||
|
url = signer.presigned_url(
|
||||||
send_data(
|
:get_object,
|
||||||
response.body.read,
|
bucket: @bucket_name,
|
||||||
filename: path,
|
key: key,
|
||||||
type: content_type,
|
expires_in: 15 * 60, # 15 minutes
|
||||||
disposition: "inline"
|
# response_content_type: 'application/xml', # 确保正确的内容类型
|
||||||
|
response_content_disposition: "inline" # 在浏览器中直接显示
|
||||||
)
|
)
|
||||||
rescue Aws::S3::Errors::NoSuchKey
|
|
||||||
|
# 设置缓存头
|
||||||
|
response.headers["Cache-Control"] = "public, max-age=3600" # 1小时缓存
|
||||||
|
|
||||||
|
# 重定向到预签名URL
|
||||||
|
redirect_to url, allow_other_host: true, status: :found
|
||||||
|
|
||||||
|
rescue Aws::S3::Errors::NotFound
|
||||||
|
Rails.logger.error "Sitemap not found: #{path}"
|
||||||
render status: :not_found
|
render status: :not_found
|
||||||
rescue Aws::S3::Errors::ServiceError => e
|
rescue Aws::S3::Errors::ServiceError => e
|
||||||
Rails.logger.error "S3 Error: #{e.message}"
|
Rails.logger.error "S3 Error: #{e.message}"
|
||||||
render status: :internal_server_error
|
render status: :internal_server_error
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# def show
|
||||||
|
# path = params[:path]
|
||||||
|
# Rails.logger.info "Sitemap: #{path}"
|
||||||
|
|
||||||
|
# begin
|
||||||
|
# response = s3_client.get_object(
|
||||||
|
# bucket: @bucket_name,
|
||||||
|
# key: "sitemaps/#{path}"
|
||||||
|
# )
|
||||||
|
|
||||||
|
# expires_in 12.hours, public: true
|
||||||
|
# content_type = response.content_type || "application/xml"
|
||||||
|
|
||||||
|
# send_data(
|
||||||
|
# response.body.read,
|
||||||
|
# filename: path,
|
||||||
|
# type: content_type,
|
||||||
|
# disposition: "inline"
|
||||||
|
# )
|
||||||
|
# rescue Aws::S3::Errors::NoSuchKey
|
||||||
|
# render status: :not_found
|
||||||
|
# rescue Aws::S3::Errors::ServiceError => e
|
||||||
|
# Rails.logger.error "S3 Error: #{e.message}"
|
||||||
|
# render status: :internal_server_error
|
||||||
|
# end
|
||||||
|
# end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def set_bucket_name
|
||||||
|
@bucket_name = Rails.env.production? ?
|
||||||
|
ENV.fetch("AWS_BUCKET", Rails.application.credentials.dig(:minio, :bucket)) :
|
||||||
|
ENV.fetch("AWS_DEV_BUCKET", Rails.application.credentials.dig(:minio_dev, :bucket))
|
||||||
|
end
|
||||||
|
|
||||||
|
def s3_client
|
||||||
|
@s3_client ||= Aws::S3::Client.new
|
||||||
|
end
|
||||||
|
|
||||||
|
def list_sitemaps
|
||||||
|
response = s3_client.list_objects_v2(
|
||||||
|
bucket: @bucket_name,
|
||||||
|
prefix: "sitemaps/"
|
||||||
|
)
|
||||||
|
|
||||||
|
response.contents.map do |object|
|
||||||
|
{
|
||||||
|
key: object.key.sub("sitemaps/", ""),
|
||||||
|
last_modified: object.last_modified,
|
||||||
|
size: object.size,
|
||||||
|
url: sitemap_url(object.key.sub("sitemaps/", ""))
|
||||||
|
}
|
||||||
|
end.reject { |obj| obj[:key].empty? }
|
||||||
|
end
|
||||||
|
|
||||||
|
def render_sitemap_index
|
||||||
|
base_url = "#{request.protocol}#{request.host_with_port}"
|
||||||
|
|
||||||
|
builder = Nokogiri::XML::Builder.new(encoding: "UTF-8") do |xml|
|
||||||
|
xml.sitemapindex(xmlns: "http://www.sitemaps.org/schemas/sitemap/0.9") do
|
||||||
|
@sitemaps.each do |sitemap|
|
||||||
|
xml.sitemap do
|
||||||
|
xml.loc "#{base_url}/sitemaps/#{sitemap[:key]}"
|
||||||
|
xml.lastmod sitemap[:last_modified].iso8601
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
render xml: builder.to_xml
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
@ -17,7 +17,7 @@ class WeatherArtsController < ApplicationController
|
|||||||
set_meta_tags(
|
set_meta_tags(
|
||||||
title: "#{@city.name} Weather Art - #{@weather_art.weather_date.strftime('%B %d, %Y')}",
|
title: "#{@city.name} Weather Art - #{@weather_art.weather_date.strftime('%B %d, %Y')}",
|
||||||
description: "#{@city.name}'s weather visualized through AI art. #{@weather_art.description} at #{@weather_art.temperature}°C.",
|
description: "#{@city.name}'s weather visualized through AI art. #{@weather_art.description} at #{@weather_art.temperature}°C.",
|
||||||
keywords: "#{@city.name}, weather art, #{@weather_art.description}, AI visualization",
|
keywords: "#{@city.name}, #{@city.country.name}, ai, ai web, ai art, ai weather, weather art, AI visualization, #{@weather_art.description}",
|
||||||
og: {
|
og: {
|
||||||
image: @weather_art.image.attached? ? url_for(@weather_art.image) : nil
|
image: @weather_art.image.attached? ? url_for(@weather_art.image) : nil
|
||||||
}
|
}
|
||||||
|
@ -1,2 +1,5 @@
|
|||||||
module SitemapsHelper
|
module SitemapsHelper
|
||||||
|
def sitemap_url(filename)
|
||||||
|
"/sitemaps/#{filename}"
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="<%= I18n.locale %>">
|
||||||
<head>
|
<head>
|
||||||
<title><%= content_for(:title) || "Today Ai Weather" %></title>
|
<title><%= content_for(:title) || "Today Ai Weather" %></title>
|
||||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||||||
@ -11,6 +11,7 @@
|
|||||||
og: {
|
og: {
|
||||||
site_name: 'TodayAIWeather',
|
site_name: 'TodayAIWeather',
|
||||||
type: 'website',
|
type: 'website',
|
||||||
|
keywords: "ai, ai web, ai art, ai weather, weather art, AI visualization, today ai weather",
|
||||||
url: request.original_url
|
url: request.original_url
|
||||||
},
|
},
|
||||||
alternate: {
|
alternate: {
|
||||||
|
@ -6,8 +6,8 @@
|
|||||||
<path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clip-rule="evenodd" />
|
<path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clip-rule="evenodd" />
|
||||||
</svg>
|
</svg>
|
||||||
</label>
|
</label>
|
||||||
<ul tabindex="0" class="dropdown-content menu p-2 shadow bg-base-100 rounded-box w-32">
|
<ul tabindex="0" class="dropdown-content menu p-2 max-h-80 overflow-y-auto flex-nowrap shadow bg-base-100 rounded-box w-32">
|
||||||
<% [:en, :'zh-CN', :ja, :ko].each do |locale| %>
|
<% I18n.available_locales.each do |locale| %>
|
||||||
<%= link_to url_for(locale: locale),
|
<%= link_to url_for(locale: locale),
|
||||||
class: "px-4 py-2 hover:bg-base-200 rounded-lg #{I18n.locale == locale ? 'bg-base-200' : ''}" do %>
|
class: "px-4 py-2 hover:bg-base-200 rounded-lg #{I18n.locale == locale ? 'bg-base-200' : ''}" do %>
|
||||||
<%= t("language.#{locale}") %>
|
<%= t("language.#{locale}") %>
|
||||||
|
43
app/views/sitemaps/index.html.erb
Normal file
43
app/views/sitemaps/index.html.erb
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
<%# app/views/sitemaps/index.html.erb %>
|
||||||
|
<div class="container mx-auto px-4 py-8">
|
||||||
|
<div class="max-w-4xl mx-auto">
|
||||||
|
<h1 class="text-3xl font-bold mb-6">Sitemaps Index</h1>
|
||||||
|
|
||||||
|
<div class="bg-white rounded-lg shadow overflow-hidden">
|
||||||
|
<div class="overflow-x-auto">
|
||||||
|
<table class="table w-full">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Filename</th>
|
||||||
|
<th>Last Modified</th>
|
||||||
|
<th>Size</th>
|
||||||
|
<th>Actions</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<% @sitemaps.each do |sitemap| %>
|
||||||
|
<tr class="hover">
|
||||||
|
<td><%= sitemap[:key] %></td>
|
||||||
|
<td><%= sitemap[:last_modified].strftime("%Y-%m-%d %H:%M:%S") %></td>
|
||||||
|
<td><%= number_to_human_size(sitemap[:size]) %></td>
|
||||||
|
<td>
|
||||||
|
<%= link_to "View", sitemap[:url],
|
||||||
|
class: "btn btn-sm btn-primary",
|
||||||
|
target: "_blank" %>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<% end %>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="mt-6 bg-base-200 p-4 rounded-lg">
|
||||||
|
<h2 class="text-xl font-semibold mb-2">For Search Engines</h2>
|
||||||
|
<p class="mb-2">Sitemap Index URL:</p>
|
||||||
|
<code class="block bg-base-300 p-2 rounded">
|
||||||
|
<%= sitemaps_url(format: :xml) %>
|
||||||
|
</code>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
@ -8,6 +8,25 @@ class BatchGenerateWeatherArtsWorker
|
|||||||
PER_RUN_GENERATION_LIMIT = 2 # 每次运行生成图片上限
|
PER_RUN_GENERATION_LIMIT = 2 # 每次运行生成图片上限
|
||||||
|
|
||||||
def perform(*args)
|
def perform(*args)
|
||||||
|
lock_key = "batch_generate_weather_lock"
|
||||||
|
lock_ttl = 300 # 锁的生存时间,单位为秒
|
||||||
|
|
||||||
|
redis = Redis.new(url: ENV.fetch("REDIS_URL", "redis://localhost:6379/1"))
|
||||||
|
|
||||||
|
if redis.set(lock_key, Time.current.to_s, nx: true, ex: lock_ttl)
|
||||||
|
begin
|
||||||
|
batch_tasks
|
||||||
|
ensure
|
||||||
|
redis.del(lock_key)
|
||||||
|
end
|
||||||
|
else
|
||||||
|
Rails.logger.info "Sitemap refresh is already in progress"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def batch_tasks
|
||||||
start_time = Time.current
|
start_time = Time.current
|
||||||
remaining_slots = calculate_remaining_slots
|
remaining_slots = calculate_remaining_slots
|
||||||
return if remaining_slots <= 0
|
return if remaining_slots <= 0
|
||||||
@ -38,8 +57,6 @@ class BatchGenerateWeatherArtsWorker
|
|||||||
print_summary(processed_cities, skipped_cities)
|
print_summary(processed_cities, skipped_cities)
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
|
||||||
|
|
||||||
def get_recent_cities
|
def get_recent_cities
|
||||||
cutoff_time = Time.current - GENERATION_INTERVAL
|
cutoff_time = Time.current - GENERATION_INTERVAL
|
||||||
City.joins("LEFT JOIN (
|
City.joins("LEFT JOIN (
|
||||||
|
@ -5,7 +5,7 @@ require "i18n/backend/fallbacks"
|
|||||||
I18n.load_path += Dir[Rails.root.join("config", "locales", "*.{rb,yml}")]
|
I18n.load_path += Dir[Rails.root.join("config", "locales", "*.{rb,yml}")]
|
||||||
|
|
||||||
# Permitted locales available for the application
|
# Permitted locales available for the application
|
||||||
I18n.available_locales = [ :en, :"zh-CN", :ja, :ko ]
|
I18n.available_locales = [ :en, :"zh-CN", :ja, :ko, :"pt-BR", :hr, :fa, :de, :es, :fr, :it, :tr, :ru, :uk, :pl, :bn, :hi, :ur, :ar ]
|
||||||
|
|
||||||
I18n::Backend::Simple.send(:include, I18n::Backend::Fallbacks)
|
I18n::Backend::Simple.send(:include, I18n::Backend::Fallbacks)
|
||||||
# I18n::Backend::Simple.include I18n::Backend::Fallbacks
|
# I18n::Backend::Simple.include I18n::Backend::Fallbacks
|
||||||
|
67
config/locales/ar.yml
Normal file
67
config/locales/ar.yml
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
ar:
|
||||||
|
hello: "مرحباً بالعالم"
|
||||||
|
brand:
|
||||||
|
name: "الطقس اليوم بالذكاء الاصطناعي"
|
||||||
|
title:
|
||||||
|
cities: "المدن"
|
||||||
|
arts: "الفنون"
|
||||||
|
sign_in: "تسجيل الدخول"
|
||||||
|
sign_out: "تسجيل الخروج"
|
||||||
|
settings: "الإعدادات"
|
||||||
|
admin_dashboard: "لوحة تحكم المشرف"
|
||||||
|
latest_weather_art: "أحدث فن الطقس"
|
||||||
|
popular_weather_art: "فن الطقس الشائع"
|
||||||
|
ai_prompt: "موجه الذكاء الاصطناعي"
|
||||||
|
text:
|
||||||
|
latest_from: "أحدث من"
|
||||||
|
search_cities: "البحث عن المدن..."
|
||||||
|
all_regions: "جميع المناطق"
|
||||||
|
all_countries: "جميع البلدان"
|
||||||
|
all_in: "الكل في"
|
||||||
|
showing: "عرض"
|
||||||
|
weather_arts: "فنون الطقس"
|
||||||
|
newest_first: "الأحدث أولاً"
|
||||||
|
oldest_first: "الأقدم أولاً"
|
||||||
|
cities:
|
||||||
|
title: "استكشف المدن"
|
||||||
|
arts:
|
||||||
|
title: "معرض فنون الطقس"
|
||||||
|
subtitle: "اكتشف فن الطقس المُنشأ بالذكاء الاصطناعي من مدن حول العالم"
|
||||||
|
home:
|
||||||
|
headline_html: حيث يلتقي الطقس<br>بالذكاء الاصطناعي
|
||||||
|
subtitle:
|
||||||
|
اختبر الطقس من خلال عدسة الفن المُنشأ بالذكاء الاصطناعي،
|
||||||
|
مما يجلب منظوراً جديداً للظواهر الجوية اليومية.
|
||||||
|
button:
|
||||||
|
explore_cities: "استكشف المدن"
|
||||||
|
view_detail: "عرض التفاصيل"
|
||||||
|
view_all_weather_arts: "عرض كل فنون الطقس"
|
||||||
|
back_to_cities: "العودة إلى المدن"
|
||||||
|
back_to: "العودة إلى"
|
||||||
|
card:
|
||||||
|
temperature: "درجة الحرارة"
|
||||||
|
wind: "الرياح"
|
||||||
|
humidity: "الرطوبة"
|
||||||
|
visibility: "الرؤية"
|
||||||
|
pressure: "الضغط"
|
||||||
|
cloud_cover: "الغطاء السحابي"
|
||||||
|
feel_like: "الشعور كأنها"
|
||||||
|
relative_humidity: "الرطوبة النسبية"
|
||||||
|
clear_view_distance: "مسافة الرؤية الواضحة"
|
||||||
|
atmospheric_pressure: "الضغط الجوي"
|
||||||
|
sky_coverage: "تغطية السماء"
|
||||||
|
pagination:
|
||||||
|
showing_items: "عرض %{from} إلى %{to} من %{total} %{items}"
|
||||||
|
items:
|
||||||
|
weather: "سجلات الطقس"
|
||||||
|
default: "العناصر"
|
||||||
|
time:
|
||||||
|
formats:
|
||||||
|
time_only: "%H:%M"
|
||||||
|
with_zone: "%{time} %{zone}"
|
||||||
|
date_and_time: "%{date} %{time}"
|
||||||
|
date:
|
||||||
|
formats:
|
||||||
|
default: "%Y-%m-%d"
|
||||||
|
short: "%b %d"
|
||||||
|
long: "%B %d, %Y"
|
67
config/locales/bn.yml
Normal file
67
config/locales/bn.yml
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
bn:
|
||||||
|
hello: "ওহে বিশ্ব"
|
||||||
|
brand:
|
||||||
|
name: "টুডে এআই ওয়েদার"
|
||||||
|
title:
|
||||||
|
cities: "শহরগুলি"
|
||||||
|
arts: "শিল্প"
|
||||||
|
sign_in: "সাইন ইন"
|
||||||
|
sign_out: "সাইন আউট"
|
||||||
|
settings: "সেটিংস"
|
||||||
|
admin_dashboard: "অ্যাডমিন ড্যাশবোর্ড"
|
||||||
|
latest_weather_art: "সর্বশেষ আবহাওয়া শিল্প"
|
||||||
|
popular_weather_art: "জনপ্রিয় আবহাওয়া শিল্প"
|
||||||
|
ai_prompt: "এআই প্রম্পট"
|
||||||
|
text:
|
||||||
|
latest_from: "সর্বশেষ"
|
||||||
|
search_cities: "শহর অনুসন্ধান..."
|
||||||
|
all_regions: "সব অঞ্চল"
|
||||||
|
all_countries: "সব দেশ"
|
||||||
|
all_in: "সবগুলি"
|
||||||
|
showing: "দেখাচ্ছে"
|
||||||
|
weather_arts: "আবহাওয়া শিল্প"
|
||||||
|
newest_first: "নতুনগুলি প্রথমে"
|
||||||
|
oldest_first: "পুরানোগুলি প্রথমে"
|
||||||
|
cities:
|
||||||
|
title: "শহরগুলি অন্বেষণ করুন"
|
||||||
|
arts:
|
||||||
|
title: "আবহাওয়া শিল্প গ্যালারি"
|
||||||
|
subtitle: "বিশ্বজুড়ে শহরগুলি থেকে এআই-জেনারেটেড আবহাওয়া শিল্প আবিষ্কার করুন"
|
||||||
|
home:
|
||||||
|
headline_html: যেখানে আবহাওয়া মিলিত হয়<br>কৃত্রিম বুদ্ধিমত্তার সাথে
|
||||||
|
subtitle:
|
||||||
|
এআই-জেনারেটেড শিল্পের মাধ্যমে আবহাওয়া অনুভব করুন,
|
||||||
|
দৈনিক আবহাওয়া ঘটনার একটি নতুন দৃষ্টিভঙ্গি আনয়ন করে।
|
||||||
|
button:
|
||||||
|
explore_cities: "শহরগুলি অন্বেষণ করুন"
|
||||||
|
view_detail: "বিস্তারিত দেখুন"
|
||||||
|
view_all_weather_arts: "সমস্ত আবহাওয়া শিল্প দেখুন"
|
||||||
|
back_to_cities: "শহরগুলিতে ফিরে যান"
|
||||||
|
back_to: "ফিরে যান"
|
||||||
|
card:
|
||||||
|
temperature: "তাপমাত্রা"
|
||||||
|
wind: "বাতাস"
|
||||||
|
humidity: "আর্দ্রতা"
|
||||||
|
visibility: "দৃশ্যমানতা"
|
||||||
|
pressure: "চাপ"
|
||||||
|
cloud_cover: "মেঘাচ্ছন্নতা"
|
||||||
|
feel_like: "অনুভূত হয়"
|
||||||
|
relative_humidity: "আপেক্ষিক আর্দ্রতা"
|
||||||
|
clear_view_distance: "পরিষ্কার দৃষ্টির দূরত্ব"
|
||||||
|
atmospheric_pressure: "বায়ুমণ্ডলীয় চাপ"
|
||||||
|
sky_coverage: "আকাশ আচ্ছাদন"
|
||||||
|
pagination:
|
||||||
|
showing_items: "%{total} %{items}-এর মধ্যে %{from} থেকে %{to} দেখানো হচ্ছে"
|
||||||
|
items:
|
||||||
|
weather: "আবহাওয়া রেকর্ড"
|
||||||
|
default: "আইটেম"
|
||||||
|
time:
|
||||||
|
formats:
|
||||||
|
time_only: "%H:%M"
|
||||||
|
with_zone: "%{time} %{zone}"
|
||||||
|
date_and_time: "%{date} %{time}"
|
||||||
|
date:
|
||||||
|
formats:
|
||||||
|
default: "%Y-%m-%d"
|
||||||
|
short: "%b %d"
|
||||||
|
long: "%B %d, %Y"
|
67
config/locales/de.yml
Normal file
67
config/locales/de.yml
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
de:
|
||||||
|
hello: "Hallo Welt"
|
||||||
|
brand:
|
||||||
|
name: "Today AI Weather"
|
||||||
|
title:
|
||||||
|
cities: "Städte"
|
||||||
|
arts: "Kunst"
|
||||||
|
sign_in: "Anmelden"
|
||||||
|
sign_out: "Abmelden"
|
||||||
|
settings: "Einstellungen"
|
||||||
|
admin_dashboard: "Admin-Dashboard"
|
||||||
|
latest_weather_art: "Neueste Wetterkunst"
|
||||||
|
popular_weather_art: "Beliebte Wetterkunst"
|
||||||
|
ai_prompt: "KI-Prompt"
|
||||||
|
text:
|
||||||
|
latest_from: "Neuestes von"
|
||||||
|
search_cities: "Städte suchen..."
|
||||||
|
all_regions: "Alle Regionen"
|
||||||
|
all_countries: "Alle Länder"
|
||||||
|
all_in: "Alles in"
|
||||||
|
showing: "Zeigt"
|
||||||
|
weather_arts: "Wetterkunst"
|
||||||
|
newest_first: "Neueste zuerst"
|
||||||
|
oldest_first: "Älteste zuerst"
|
||||||
|
cities:
|
||||||
|
title: "Städte erkunden"
|
||||||
|
arts:
|
||||||
|
title: "Wetterkunst-Galerie"
|
||||||
|
subtitle: "Entdecken Sie KI-generierte Wetterkunst aus Städten auf der ganzen Welt"
|
||||||
|
home:
|
||||||
|
headline_html: Wo Wetter auf<br>Künstliche Intelligenz trifft
|
||||||
|
subtitle:
|
||||||
|
Erleben Sie Wetter durch die Linse KI-generierter Kunst,
|
||||||
|
die eine neue Perspektive auf tägliche meteorologische Phänomene bietet.
|
||||||
|
button:
|
||||||
|
explore_cities: "Städte erkunden"
|
||||||
|
view_detail: "Details anzeigen"
|
||||||
|
view_all_weather_arts: "Alle Wetterkunst anzeigen"
|
||||||
|
back_to_cities: "Zurück zu Städten"
|
||||||
|
back_to: "Zurück zu"
|
||||||
|
card:
|
||||||
|
temperature: "Temperatur"
|
||||||
|
wind: "Wind"
|
||||||
|
humidity: "Luftfeuchtigkeit"
|
||||||
|
visibility: "Sichtweite"
|
||||||
|
pressure: "Luftdruck"
|
||||||
|
cloud_cover: "Bewölkung"
|
||||||
|
feel_like: "Gefühlt wie"
|
||||||
|
relative_humidity: "Relative Luftfeuchtigkeit"
|
||||||
|
clear_view_distance: "Klare Sichtweite"
|
||||||
|
atmospheric_pressure: "Atmosphärischer Druck"
|
||||||
|
sky_coverage: "Himmelsbedeckung"
|
||||||
|
pagination:
|
||||||
|
showing_items: "Zeigt %{from} bis %{to} von %{total} %{items}"
|
||||||
|
items:
|
||||||
|
weather: "Wetteraufzeichnungen"
|
||||||
|
default: "Einträge"
|
||||||
|
time:
|
||||||
|
formats:
|
||||||
|
time_only: "%H:%M"
|
||||||
|
with_zone: "%{time} %{zone}"
|
||||||
|
date_and_time: "%{date} %{time}"
|
||||||
|
date:
|
||||||
|
formats:
|
||||||
|
default: "%Y-%m-%d"
|
||||||
|
short: "%d. %b"
|
||||||
|
long: "%d. %B %Y"
|
@ -32,7 +32,23 @@ en:
|
|||||||
en: "English"
|
en: "English"
|
||||||
zh-CN: "简体中文"
|
zh-CN: "简体中文"
|
||||||
ja: "日本語"
|
ja: "日本語"
|
||||||
ko: "한국어"
|
ko: "한국어" # 韩语
|
||||||
|
pt-BR: "Português (Brasil)" # 巴西葡萄牙语
|
||||||
|
pt: "Português" # 葡萄牙语
|
||||||
|
hr: "Hrvatski" # 克罗地亚语
|
||||||
|
fa: "فارسی" # 波斯语(法尔西语)
|
||||||
|
de: "Deutsch" # 德语
|
||||||
|
es: "Español" # 西班牙语
|
||||||
|
fr: "Français" # 法语
|
||||||
|
it: "Italiano" # 意大利语
|
||||||
|
tr: "Türkçe" # 土耳其语
|
||||||
|
ru: "Русский" # 俄语
|
||||||
|
uk: "Українська" # 乌克兰语
|
||||||
|
pl: "Polski" # 波兰语
|
||||||
|
bn: "বাংলা" # 孟加拉
|
||||||
|
hi: "हिंदी" # 印地语
|
||||||
|
ur: " اردو" # 乌尔都语
|
||||||
|
ar: "العربية" # 阿拉伯
|
||||||
hello: "Hello world"
|
hello: "Hello world"
|
||||||
brand:
|
brand:
|
||||||
name: "Today AI Weather"
|
name: "Today AI Weather"
|
||||||
@ -94,3 +110,8 @@ en:
|
|||||||
time_only: "%H:%M"
|
time_only: "%H:%M"
|
||||||
with_zone: "%{time} %{zone}"
|
with_zone: "%{time} %{zone}"
|
||||||
date_and_time: "%{date} %{time}"
|
date_and_time: "%{date} %{time}"
|
||||||
|
date:
|
||||||
|
formats:
|
||||||
|
default: "%Y-%m-%d"
|
||||||
|
short: "%b %d"
|
||||||
|
long: "%B %d, %Y"
|
||||||
|
67
config/locales/es.yml
Normal file
67
config/locales/es.yml
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
es:
|
||||||
|
hello: "Hola mundo"
|
||||||
|
brand:
|
||||||
|
name: "Today AI Weather"
|
||||||
|
title:
|
||||||
|
cities: "Ciudades"
|
||||||
|
arts: "Arte"
|
||||||
|
sign_in: "Iniciar sesión"
|
||||||
|
sign_out: "Cerrar sesión"
|
||||||
|
settings: "Configuración"
|
||||||
|
admin_dashboard: "Panel de administración"
|
||||||
|
latest_weather_art: "Último arte del tiempo"
|
||||||
|
popular_weather_art: "Arte del tiempo popular"
|
||||||
|
ai_prompt: "Prompt de IA"
|
||||||
|
text:
|
||||||
|
latest_from: "Lo último de"
|
||||||
|
search_cities: "Buscar ciudades..."
|
||||||
|
all_regions: "Todas las regiones"
|
||||||
|
all_countries: "Todos los países"
|
||||||
|
all_in: "Todo en"
|
||||||
|
showing: "Mostrando"
|
||||||
|
weather_arts: "Arte del tiempo"
|
||||||
|
newest_first: "Más recientes primero"
|
||||||
|
oldest_first: "Más antiguos primero"
|
||||||
|
cities:
|
||||||
|
title: "Explorar ciudades"
|
||||||
|
arts:
|
||||||
|
title: "Galería de arte del tiempo"
|
||||||
|
subtitle: "Descubre arte generado por IA del tiempo de ciudades de todo el mundo"
|
||||||
|
home:
|
||||||
|
headline_html: Donde el tiempo se encuentra<br>con la Inteligencia Artificial
|
||||||
|
subtitle:
|
||||||
|
Experimenta el tiempo a través del lente del arte generado por IA,
|
||||||
|
brindando una nueva perspectiva a los fenómenos meteorológicos diarios.
|
||||||
|
button:
|
||||||
|
explore_cities: "Explorar ciudades"
|
||||||
|
view_detail: "Ver detalles"
|
||||||
|
view_all_weather_arts: "Ver todo el arte del tiempo"
|
||||||
|
back_to_cities: "Volver a ciudades"
|
||||||
|
back_to: "Volver a"
|
||||||
|
card:
|
||||||
|
temperature: "Temperatura"
|
||||||
|
wind: "Viento"
|
||||||
|
humidity: "Humedad"
|
||||||
|
visibility: "Visibilidad"
|
||||||
|
pressure: "Presión"
|
||||||
|
cloud_cover: "Cobertura de nubes"
|
||||||
|
feel_like: "Sensación térmica"
|
||||||
|
relative_humidity: "Humedad relativa"
|
||||||
|
clear_view_distance: "Distancia de visibilidad clara"
|
||||||
|
atmospheric_pressure: "Presión atmosférica"
|
||||||
|
sky_coverage: "Cobertura del cielo"
|
||||||
|
pagination:
|
||||||
|
showing_items: "Mostrando %{from} a %{to} de %{total} %{items}"
|
||||||
|
items:
|
||||||
|
weather: "registros meteorológicos"
|
||||||
|
default: "elementos"
|
||||||
|
time:
|
||||||
|
formats:
|
||||||
|
time_only: "%H:%M"
|
||||||
|
with_zone: "%{time} %{zone}"
|
||||||
|
date_and_time: "%{date} %{time}"
|
||||||
|
date:
|
||||||
|
formats:
|
||||||
|
default: "%Y-%m-%d"
|
||||||
|
short: "%b %d"
|
||||||
|
long: "%d de %B de %Y"
|
67
config/locales/fa.yml
Normal file
67
config/locales/fa.yml
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
fa:
|
||||||
|
hello: "سلام دنیا"
|
||||||
|
brand:
|
||||||
|
name: "هوای هوش مصنوعی امروز"
|
||||||
|
title:
|
||||||
|
cities: "شهرها"
|
||||||
|
arts: "هنرها"
|
||||||
|
sign_in: "ورود"
|
||||||
|
sign_out: "خروج"
|
||||||
|
settings: "تنظیمات"
|
||||||
|
admin_dashboard: "داشبورد مدیر"
|
||||||
|
latest_weather_art: "آخرین هنر آب و هوا"
|
||||||
|
popular_weather_art: "هنر آب و هوای محبوب"
|
||||||
|
ai_prompt: "پرامپت هوش مصنوعی"
|
||||||
|
text:
|
||||||
|
latest_from: "آخرین از"
|
||||||
|
search_cities: "جستجوی شهرها..."
|
||||||
|
all_regions: "همه مناطق"
|
||||||
|
all_countries: "همه کشورها"
|
||||||
|
all_in: "همه در"
|
||||||
|
showing: "نمایش"
|
||||||
|
weather_arts: "هنرهای آب و هوا"
|
||||||
|
newest_first: "جدیدترین اول"
|
||||||
|
oldest_first: "قدیمیترین اول"
|
||||||
|
cities:
|
||||||
|
title: "کاوش شهرها"
|
||||||
|
arts:
|
||||||
|
title: "گالری هنرهای آب و هوا"
|
||||||
|
subtitle: "کشف هنر آب و هوای تولید شده توسط هوش مصنوعی از شهرهای سراسر جهان"
|
||||||
|
home:
|
||||||
|
headline_html: جایی که آب و هوا با<br>هوش مصنوعی ملاقات میکند
|
||||||
|
subtitle:
|
||||||
|
تجربه آب و هوا از طریق لنز هنر تولید شده توسط هوش مصنوعی،
|
||||||
|
آوردن دیدگاهی جدید به پدیدههای هواشناسی روزانه.
|
||||||
|
button:
|
||||||
|
explore_cities: "کاوش شهرها"
|
||||||
|
view_detail: "مشاهده جزئیات"
|
||||||
|
view_all_weather_arts: "مشاهده همه هنرهای آب و هوا"
|
||||||
|
back_to_cities: "بازگشت به شهرها"
|
||||||
|
back_to: "بازگشت به"
|
||||||
|
card:
|
||||||
|
temperature: "دما"
|
||||||
|
wind: "باد"
|
||||||
|
humidity: "رطوبت"
|
||||||
|
visibility: "دید"
|
||||||
|
pressure: "فشار"
|
||||||
|
cloud_cover: "پوشش ابر"
|
||||||
|
feel_like: "احساس مانند"
|
||||||
|
relative_humidity: "رطوبت نسبی"
|
||||||
|
clear_view_distance: "فاصله دید شفاف"
|
||||||
|
atmospheric_pressure: "فشار جو"
|
||||||
|
sky_coverage: "پوشش آسمان"
|
||||||
|
pagination:
|
||||||
|
showing_items: "نمایش %{from} تا %{to} از %{total} %{items}"
|
||||||
|
items:
|
||||||
|
weather: "رکوردهای آب و هوا"
|
||||||
|
default: "موارد"
|
||||||
|
time:
|
||||||
|
formats:
|
||||||
|
time_only: "%H:%M"
|
||||||
|
with_zone: "%{time} %{zone}"
|
||||||
|
date_and_time: "%{date} %{time}"
|
||||||
|
date:
|
||||||
|
formats:
|
||||||
|
default: "%Y-%m-%d"
|
||||||
|
short: "%b %d"
|
||||||
|
long: "%B %d, %Y"
|
67
config/locales/fr.yml
Normal file
67
config/locales/fr.yml
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
fr:
|
||||||
|
hello: "Bonjour le monde"
|
||||||
|
brand:
|
||||||
|
name: "Today AI Weather"
|
||||||
|
title:
|
||||||
|
cities: "Villes"
|
||||||
|
arts: "Arts"
|
||||||
|
sign_in: "Se connecter"
|
||||||
|
sign_out: "Se déconnecter"
|
||||||
|
settings: "Paramètres"
|
||||||
|
admin_dashboard: "Tableau de bord administrateur"
|
||||||
|
latest_weather_art: "Derniers arts météorologiques"
|
||||||
|
popular_weather_art: "Arts météorologiques populaires"
|
||||||
|
ai_prompt: "Prompt IA"
|
||||||
|
text:
|
||||||
|
latest_from: "Derniers de"
|
||||||
|
search_cities: "Rechercher des villes..."
|
||||||
|
all_regions: "Toutes les régions"
|
||||||
|
all_countries: "Tous les pays"
|
||||||
|
all_in: "Tout dans"
|
||||||
|
showing: "Affichage"
|
||||||
|
weather_arts: "Arts météorologiques"
|
||||||
|
newest_first: "Plus récents d'abord"
|
||||||
|
oldest_first: "Plus anciens d'abord"
|
||||||
|
cities:
|
||||||
|
title: "Explorer les villes"
|
||||||
|
arts:
|
||||||
|
title: "Galerie d'arts météorologiques"
|
||||||
|
subtitle: "Découvrez l'art météorologique généré par l'IA des villes du monde entier"
|
||||||
|
home:
|
||||||
|
headline_html: "Là où la météo rencontre<br>l'Intelligence Artificielle"
|
||||||
|
subtitle:
|
||||||
|
Découvrez la météo à travers le prisme de l'art généré par l'IA,
|
||||||
|
apportant une nouvelle perspective aux phénomènes météorologiques quotidiens.
|
||||||
|
button:
|
||||||
|
explore_cities: "Explorer les villes"
|
||||||
|
view_detail: "Voir les détails"
|
||||||
|
view_all_weather_arts: "Voir tous les arts météorologiques"
|
||||||
|
back_to_cities: "Retour aux villes"
|
||||||
|
back_to: "Retour à"
|
||||||
|
card:
|
||||||
|
temperature: "Température"
|
||||||
|
wind: "Vent"
|
||||||
|
humidity: "Humidité"
|
||||||
|
visibility: "Visibilité"
|
||||||
|
pressure: "Pression"
|
||||||
|
cloud_cover: "Couverture nuageuse"
|
||||||
|
feel_like: "Ressenti"
|
||||||
|
relative_humidity: "Humidité relative"
|
||||||
|
clear_view_distance: "Distance de visibilité claire"
|
||||||
|
atmospheric_pressure: "Pression atmosphérique"
|
||||||
|
sky_coverage: "Couverture du ciel"
|
||||||
|
pagination:
|
||||||
|
showing_items: "Affichage de %{from} à %{to} sur %{total} %{items}"
|
||||||
|
items:
|
||||||
|
weather: "relevés météorologiques"
|
||||||
|
default: "éléments"
|
||||||
|
time:
|
||||||
|
formats:
|
||||||
|
time_only: "%H:%M"
|
||||||
|
with_zone: "%{time} %{zone}"
|
||||||
|
date_and_time: "%{date} %{time}"
|
||||||
|
date:
|
||||||
|
formats:
|
||||||
|
default: "%Y-%m-%d"
|
||||||
|
short: "%b %d"
|
||||||
|
long: "%d %B %Y"
|
67
config/locales/hi.yml
Normal file
67
config/locales/hi.yml
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
hi:
|
||||||
|
hello: "नमस्ते दुनिया"
|
||||||
|
brand:
|
||||||
|
name: "टुडे एआई वेदर"
|
||||||
|
title:
|
||||||
|
cities: "शहर"
|
||||||
|
arts: "कला"
|
||||||
|
sign_in: "साइन इन"
|
||||||
|
sign_out: "साइन आउट"
|
||||||
|
settings: "सेटिंग्स"
|
||||||
|
admin_dashboard: "एडमिन डैशबोर्ड"
|
||||||
|
latest_weather_art: "नवीनतम मौसम कला"
|
||||||
|
popular_weather_art: "लोकप्रिय मौसम कला"
|
||||||
|
ai_prompt: "एआई प्रॉम्प्ट"
|
||||||
|
text:
|
||||||
|
latest_from: "से नवीनतम"
|
||||||
|
search_cities: "शहर खोजें..."
|
||||||
|
all_regions: "सभी क्षेत्र"
|
||||||
|
all_countries: "सभी देश"
|
||||||
|
all_in: "सभी में"
|
||||||
|
showing: "दिखा रहा है"
|
||||||
|
weather_arts: "मौसम कला"
|
||||||
|
newest_first: "नवीनतम पहले"
|
||||||
|
oldest_first: "सबसे पुराना पहले"
|
||||||
|
cities:
|
||||||
|
title: "शहरों की खोज करें"
|
||||||
|
arts:
|
||||||
|
title: "मौसम कला गैलरी"
|
||||||
|
subtitle: "दुनिया भर के शहरों से एआई-जनित मौसम कला की खोज करें"
|
||||||
|
home:
|
||||||
|
headline_html: जहां मौसम मिलता है<br>कृत्रिम बुद्धिमत्ता
|
||||||
|
subtitle:
|
||||||
|
एआई-जनित कला के माध्यम से मौसम का अनुभव करें,
|
||||||
|
दैनिक मौसम संबंधी घटनाओं को एक नया दृष्टिकोण प्रदान करें।
|
||||||
|
button:
|
||||||
|
explore_cities: "शहरों की खोज करें"
|
||||||
|
view_detail: "विवरण देखें"
|
||||||
|
view_all_weather_arts: "सभी मौसम कला देखें"
|
||||||
|
back_to_cities: "शहरों पर वापस जाएं"
|
||||||
|
back_to: "वापस जाएं"
|
||||||
|
card:
|
||||||
|
temperature: "तापमान"
|
||||||
|
wind: "हवा"
|
||||||
|
humidity: "नमी"
|
||||||
|
visibility: "दृश्यता"
|
||||||
|
pressure: "दबाव"
|
||||||
|
cloud_cover: "बादल छाए"
|
||||||
|
feel_like: "महसूस होता है"
|
||||||
|
relative_humidity: "सापेक्ष आर्द्रता"
|
||||||
|
clear_view_distance: "स्पष्ट दृश्य दूरी"
|
||||||
|
atmospheric_pressure: "वायुमंडलीय दबाव"
|
||||||
|
sky_coverage: "आकाश कवरेज"
|
||||||
|
pagination:
|
||||||
|
showing_items: "%{total} %{items} में से %{from} से %{to} तक दिखा रहा है"
|
||||||
|
items:
|
||||||
|
weather: "मौसम रिकॉर्ड"
|
||||||
|
default: "आइटम"
|
||||||
|
time:
|
||||||
|
formats:
|
||||||
|
time_only: "%H:%M"
|
||||||
|
with_zone: "%{time} %{zone}"
|
||||||
|
date_and_time: "%{date} %{time}"
|
||||||
|
date:
|
||||||
|
formats:
|
||||||
|
default: "%Y-%m-%d"
|
||||||
|
short: "%b %d"
|
||||||
|
long: "%B %d, %Y"
|
67
config/locales/hr.yml
Normal file
67
config/locales/hr.yml
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
hr:
|
||||||
|
hello: "Pozdrav svijete"
|
||||||
|
brand:
|
||||||
|
name: "Today AI Weather"
|
||||||
|
title:
|
||||||
|
cities: "Gradovi"
|
||||||
|
arts: "Umjetnost"
|
||||||
|
sign_in: "Prijava"
|
||||||
|
sign_out: "Odjava"
|
||||||
|
settings: "Postavke"
|
||||||
|
admin_dashboard: "Administratorska ploča"
|
||||||
|
latest_weather_art: "Najnovija vremenska umjetnost"
|
||||||
|
popular_weather_art: "Popularna vremenska umjetnost"
|
||||||
|
ai_prompt: "AI upit"
|
||||||
|
text:
|
||||||
|
latest_from: "Najnovije od"
|
||||||
|
search_cities: "Pretraži gradove..."
|
||||||
|
all_regions: "Sve regije"
|
||||||
|
all_countries: "Sve države"
|
||||||
|
all_in: "Sve u"
|
||||||
|
showing: "Prikazuje se"
|
||||||
|
weather_arts: "Vremenska umjetnost"
|
||||||
|
newest_first: "Najnovije prvo"
|
||||||
|
oldest_first: "Najstarije prvo"
|
||||||
|
cities:
|
||||||
|
title: "Istražite gradove"
|
||||||
|
arts:
|
||||||
|
title: "Galerija vremenske umjetnosti"
|
||||||
|
subtitle: "Otkrijte umjetnost vremena generiranu AI-em iz gradova širom svijeta"
|
||||||
|
home:
|
||||||
|
headline_html: Gdje se vrijeme susreće<br>s umjetnom inteligencijom
|
||||||
|
subtitle:
|
||||||
|
Doživite vrijeme kroz objektiv umjetnosti generirane AI-em,
|
||||||
|
donoseći novu perspektivu svakodnevnim meteorološkim pojavama.
|
||||||
|
button:
|
||||||
|
explore_cities: "Istražite gradove"
|
||||||
|
view_detail: "Pogledaj detalje"
|
||||||
|
view_all_weather_arts: "Pogledaj svu vremensku umjetnost"
|
||||||
|
back_to_cities: "Natrag na gradove"
|
||||||
|
back_to: "Natrag na"
|
||||||
|
card:
|
||||||
|
temperature: "Temperatura"
|
||||||
|
wind: "Vjetar"
|
||||||
|
humidity: "Vlažnost"
|
||||||
|
visibility: "Vidljivost"
|
||||||
|
pressure: "Tlak"
|
||||||
|
cloud_cover: "Naoblaka"
|
||||||
|
feel_like: "Osjeća se kao"
|
||||||
|
relative_humidity: "Relativna vlažnost"
|
||||||
|
clear_view_distance: "Udaljenost čistog pogleda"
|
||||||
|
atmospheric_pressure: "Atmosferski tlak"
|
||||||
|
sky_coverage: "Pokrivenost neba"
|
||||||
|
pagination:
|
||||||
|
showing_items: "Prikazuje se %{from} do %{to} od %{total} %{items}"
|
||||||
|
items:
|
||||||
|
weather: "vremenskih zapisa"
|
||||||
|
default: "stavki"
|
||||||
|
time:
|
||||||
|
formats:
|
||||||
|
time_only: "%H:%M"
|
||||||
|
with_zone: "%{time} %{zone}"
|
||||||
|
date_and_time: "%{date} %{time}"
|
||||||
|
date:
|
||||||
|
formats:
|
||||||
|
default: "%Y-%m-%d"
|
||||||
|
short: "%b %d"
|
||||||
|
long: "%d. %B %Y."
|
67
config/locales/it.yml
Normal file
67
config/locales/it.yml
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
it:
|
||||||
|
hello: "Ciao mondo"
|
||||||
|
brand:
|
||||||
|
name: "Today AI Weather"
|
||||||
|
title:
|
||||||
|
cities: "Città"
|
||||||
|
arts: "Arte"
|
||||||
|
sign_in: "Accedi"
|
||||||
|
sign_out: "Esci"
|
||||||
|
settings: "Impostazioni"
|
||||||
|
admin_dashboard: "Dashboard Amministratore"
|
||||||
|
latest_weather_art: "Ultima Arte Meteorologica"
|
||||||
|
popular_weather_art: "Arte Meteorologica Popolare"
|
||||||
|
ai_prompt: "Prompt IA"
|
||||||
|
text:
|
||||||
|
latest_from: "Ultimi da"
|
||||||
|
search_cities: "Cerca città..."
|
||||||
|
all_regions: "Tutte le Regioni"
|
||||||
|
all_countries: "Tutti i Paesi"
|
||||||
|
all_in: "Tutto in"
|
||||||
|
showing: "Mostrando"
|
||||||
|
weather_arts: "Arte Meteorologica"
|
||||||
|
newest_first: "Prima i più Recenti"
|
||||||
|
oldest_first: "Prima i più Vecchi"
|
||||||
|
cities:
|
||||||
|
title: "Esplora Città"
|
||||||
|
arts:
|
||||||
|
title: "Galleria Arte Meteorologica"
|
||||||
|
subtitle: "Scopri l'arte meteorologica generata dall'IA dalle città di tutto il mondo"
|
||||||
|
home:
|
||||||
|
headline_html: Dove il Meteo Incontra<br>l'Intelligenza Artificiale
|
||||||
|
subtitle:
|
||||||
|
Vivi il meteo attraverso la lente dell'arte generata dall'IA,
|
||||||
|
portando una nuova prospettiva ai fenomeni meteorologici quotidiani.
|
||||||
|
button:
|
||||||
|
explore_cities: "Esplora Città"
|
||||||
|
view_detail: "Visualizza Dettagli"
|
||||||
|
view_all_weather_arts: "Visualizza Tutta l'Arte Meteorologica"
|
||||||
|
back_to_cities: "Torna alle Città"
|
||||||
|
back_to: "Torna a"
|
||||||
|
card:
|
||||||
|
temperature: "Temperatura"
|
||||||
|
wind: "Vento"
|
||||||
|
humidity: "Umidità"
|
||||||
|
visibility: "Visibilità"
|
||||||
|
pressure: "Pressione"
|
||||||
|
cloud_cover: "Copertura Nuvolosa"
|
||||||
|
feel_like: "Percepita"
|
||||||
|
relative_humidity: "Umidità relativa"
|
||||||
|
clear_view_distance: "Distanza di visibilità"
|
||||||
|
atmospheric_pressure: "Pressione atmosferica"
|
||||||
|
sky_coverage: "Copertura del cielo"
|
||||||
|
pagination:
|
||||||
|
showing_items: "Mostrando da %{from} a %{to} di %{total} %{items}"
|
||||||
|
items:
|
||||||
|
weather: "registrazioni meteo"
|
||||||
|
default: "elementi"
|
||||||
|
time:
|
||||||
|
formats:
|
||||||
|
time_only: "%H:%M"
|
||||||
|
with_zone: "%{time} %{zone}"
|
||||||
|
date_and_time: "%{date} %{time}"
|
||||||
|
date:
|
||||||
|
formats:
|
||||||
|
default: "%Y-%m-%d"
|
||||||
|
short: "%b %d"
|
||||||
|
long: "%d %B %Y"
|
67
config/locales/pl.yml
Normal file
67
config/locales/pl.yml
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
pl:
|
||||||
|
hello: "Witaj świecie"
|
||||||
|
brand:
|
||||||
|
name: "Today AI Weather"
|
||||||
|
title:
|
||||||
|
cities: "Miasta"
|
||||||
|
arts: "Sztuka"
|
||||||
|
sign_in: "Zaloguj się"
|
||||||
|
sign_out: "Wyloguj się"
|
||||||
|
settings: "Ustawienia"
|
||||||
|
admin_dashboard: "Panel administratora"
|
||||||
|
latest_weather_art: "Najnowsza sztuka pogodowa"
|
||||||
|
popular_weather_art: "Popularna sztuka pogodowa"
|
||||||
|
ai_prompt: "Prompt AI"
|
||||||
|
text:
|
||||||
|
latest_from: "Najnowsze z"
|
||||||
|
search_cities: "Szukaj miast..."
|
||||||
|
all_regions: "Wszystkie regiony"
|
||||||
|
all_countries: "Wszystkie kraje"
|
||||||
|
all_in: "Wszystko w"
|
||||||
|
showing: "Wyświetlanie"
|
||||||
|
weather_arts: "Sztuka pogodowa"
|
||||||
|
newest_first: "Od najnowszych"
|
||||||
|
oldest_first: "Od najstarszych"
|
||||||
|
cities:
|
||||||
|
title: "Odkryj miasta"
|
||||||
|
arts:
|
||||||
|
title: "Galeria sztuki pogodowej"
|
||||||
|
subtitle: "Odkryj sztukę pogodową generowaną przez AI z miast na całym świecie"
|
||||||
|
home:
|
||||||
|
headline_html: Gdzie pogoda spotyka się<br>ze sztuczną inteligencją
|
||||||
|
subtitle:
|
||||||
|
Doświadcz pogody przez pryzmat sztuki generowanej przez AI,
|
||||||
|
wprowadzając nową perspektywę do codziennych zjawisk meteorologicznych.
|
||||||
|
button:
|
||||||
|
explore_cities: "Odkryj miasta"
|
||||||
|
view_detail: "Zobacz szczegóły"
|
||||||
|
view_all_weather_arts: "Zobacz całą sztukę pogodową"
|
||||||
|
back_to_cities: "Powrót do miast"
|
||||||
|
back_to: "Powrót do"
|
||||||
|
card:
|
||||||
|
temperature: "Temperatura"
|
||||||
|
wind: "Wiatr"
|
||||||
|
humidity: "Wilgotność"
|
||||||
|
visibility: "Widoczność"
|
||||||
|
pressure: "Ciśnienie"
|
||||||
|
cloud_cover: "Zachmurzenie"
|
||||||
|
feel_like: "Odczuwalna"
|
||||||
|
relative_humidity: "Wilgotność względna"
|
||||||
|
clear_view_distance: "Zasięg widoczności"
|
||||||
|
atmospheric_pressure: "Ciśnienie atmosferyczne"
|
||||||
|
sky_coverage: "Pokrycie nieba"
|
||||||
|
pagination:
|
||||||
|
showing_items: "Wyświetlanie %{from} do %{to} z %{total} %{items}"
|
||||||
|
items:
|
||||||
|
weather: "zapisów pogody"
|
||||||
|
default: "elementów"
|
||||||
|
time:
|
||||||
|
formats:
|
||||||
|
time_only: "%H:%M"
|
||||||
|
with_zone: "%{time} %{zone}"
|
||||||
|
date_and_time: "%{date} %{time}"
|
||||||
|
date:
|
||||||
|
formats:
|
||||||
|
default: "%Y-%m-%d"
|
||||||
|
short: "%b %d"
|
||||||
|
long: "%d %B %Y"
|
67
config/locales/pt-BR.yml
Normal file
67
config/locales/pt-BR.yml
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
pt-BR:
|
||||||
|
hello: "Olá mundo"
|
||||||
|
brand:
|
||||||
|
name: "Today AI Weather"
|
||||||
|
title:
|
||||||
|
cities: "Cidades"
|
||||||
|
arts: "Artes"
|
||||||
|
sign_in: "Entrar"
|
||||||
|
sign_out: "Sair"
|
||||||
|
settings: "Configurações"
|
||||||
|
admin_dashboard: "Painel de Administração"
|
||||||
|
latest_weather_art: "Arte Meteorológica Mais Recente"
|
||||||
|
popular_weather_art: "Arte Meteorológica Popular"
|
||||||
|
ai_prompt: "Prompt de IA"
|
||||||
|
text:
|
||||||
|
latest_from: "Mais recente de"
|
||||||
|
search_cities: "Pesquisar cidades..."
|
||||||
|
all_regions: "Todas as Regiões"
|
||||||
|
all_countries: "Todos os Países"
|
||||||
|
all_in: "Tudo em"
|
||||||
|
showing: "Mostrando"
|
||||||
|
weather_arts: "Artes Meteorológicas"
|
||||||
|
newest_first: "Mais Recentes Primeiro"
|
||||||
|
oldest_first: "Mais Antigos Primeiro"
|
||||||
|
cities:
|
||||||
|
title: "Explorar Cidades"
|
||||||
|
arts:
|
||||||
|
title: "Galeria de Artes Meteorológicas"
|
||||||
|
subtitle: "Descubra arte meteorológica gerada por IA de cidades ao redor do mundo"
|
||||||
|
home:
|
||||||
|
headline_html: Onde o Clima Encontra<br>a Inteligência Artificial
|
||||||
|
subtitle:
|
||||||
|
Experimente o clima através das lentes da arte gerada por IA,
|
||||||
|
trazendo uma nova perspectiva para os fenômenos meteorológicos diários.
|
||||||
|
button:
|
||||||
|
explore_cities: "Explorar Cidades"
|
||||||
|
view_detail: "Ver Detalhes"
|
||||||
|
view_all_weather_arts: "Ver Todas as Artes Meteorológicas"
|
||||||
|
back_to_cities: "Voltar para Cidades"
|
||||||
|
back_to: "Voltar para"
|
||||||
|
card:
|
||||||
|
temperature: "Temperatura"
|
||||||
|
wind: "Vento"
|
||||||
|
humidity: "Umidade"
|
||||||
|
visibility: "Visibilidade"
|
||||||
|
pressure: "Pressão"
|
||||||
|
cloud_cover: "Cobertura de Nuvens"
|
||||||
|
feel_like: "Sensação térmica"
|
||||||
|
relative_humidity: "Umidade relativa"
|
||||||
|
clear_view_distance: "Distância de visão clara"
|
||||||
|
atmospheric_pressure: "Pressão atmosférica"
|
||||||
|
sky_coverage: "Cobertura do céu"
|
||||||
|
pagination:
|
||||||
|
showing_items: "Mostrando %{from} até %{to} de %{total} %{items}"
|
||||||
|
items:
|
||||||
|
weather: "registros meteorológicos"
|
||||||
|
default: "itens"
|
||||||
|
time:
|
||||||
|
formats:
|
||||||
|
time_only: "%H:%M"
|
||||||
|
with_zone: "%{time} %{zone}"
|
||||||
|
date_and_time: "%{date} %{time}"
|
||||||
|
date:
|
||||||
|
formats:
|
||||||
|
default: "%d/%m/%Y"
|
||||||
|
short: "%d %b"
|
||||||
|
long: "%d de %B de %Y"
|
67
config/locales/pt.yml
Normal file
67
config/locales/pt.yml
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
pt:
|
||||||
|
hello: "Olá mundo"
|
||||||
|
brand:
|
||||||
|
name: "Today AI Weather"
|
||||||
|
title:
|
||||||
|
cities: "Cidades"
|
||||||
|
arts: "Artes"
|
||||||
|
sign_in: "Entrar"
|
||||||
|
sign_out: "Sair"
|
||||||
|
settings: "Configurações"
|
||||||
|
admin_dashboard: "Painel de Administração"
|
||||||
|
latest_weather_art: "Arte Meteorológica Mais Recente"
|
||||||
|
popular_weather_art: "Arte Meteorológica Popular"
|
||||||
|
ai_prompt: "Prompt de IA"
|
||||||
|
text:
|
||||||
|
latest_from: "Mais recente de"
|
||||||
|
search_cities: "Pesquisar cidades..."
|
||||||
|
all_regions: "Todas as Regiões"
|
||||||
|
all_countries: "Todos os Países"
|
||||||
|
all_in: "Tudo em"
|
||||||
|
showing: "Mostrando"
|
||||||
|
weather_arts: "Artes Meteorológicas"
|
||||||
|
newest_first: "Mais Recentes Primeiro"
|
||||||
|
oldest_first: "Mais Antigos Primeiro"
|
||||||
|
cities:
|
||||||
|
title: "Explorar Cidades"
|
||||||
|
arts:
|
||||||
|
title: "Galeria de Artes Meteorológicas"
|
||||||
|
subtitle: "Descubra arte meteorológica gerada por IA de cidades ao redor do mundo"
|
||||||
|
home:
|
||||||
|
headline_html: Onde o Clima Encontra<br>a Inteligência Artificial
|
||||||
|
subtitle:
|
||||||
|
Experimente o clima através das lentes da arte gerada por IA,
|
||||||
|
trazendo uma nova perspectiva para os fenômenos meteorológicos diários.
|
||||||
|
button:
|
||||||
|
explore_cities: "Explorar Cidades"
|
||||||
|
view_detail: "Ver Detalhes"
|
||||||
|
view_all_weather_arts: "Ver Todas as Artes Meteorológicas"
|
||||||
|
back_to_cities: "Voltar para Cidades"
|
||||||
|
back_to: "Voltar para"
|
||||||
|
card:
|
||||||
|
temperature: "Temperatura"
|
||||||
|
wind: "Vento"
|
||||||
|
humidity: "Umidade"
|
||||||
|
visibility: "Visibilidade"
|
||||||
|
pressure: "Pressão"
|
||||||
|
cloud_cover: "Cobertura de Nuvens"
|
||||||
|
feel_like: "Sensação térmica"
|
||||||
|
relative_humidity: "Umidade relativa"
|
||||||
|
clear_view_distance: "Distância de visão clara"
|
||||||
|
atmospheric_pressure: "Pressão atmosférica"
|
||||||
|
sky_coverage: "Cobertura do céu"
|
||||||
|
pagination:
|
||||||
|
showing_items: "Mostrando %{from} a %{to} de %{total} %{items}"
|
||||||
|
items:
|
||||||
|
weather: "registros meteorológicos"
|
||||||
|
default: "itens"
|
||||||
|
time:
|
||||||
|
formats:
|
||||||
|
time_only: "%H:%M"
|
||||||
|
with_zone: "%{time} %{zone}"
|
||||||
|
date_and_time: "%{date} %{time}"
|
||||||
|
date:
|
||||||
|
formats:
|
||||||
|
default: "%Y-%m-%d"
|
||||||
|
short: "%d de %b"
|
||||||
|
long: "%d de %B de %Y"
|
67
config/locales/ru.yml
Normal file
67
config/locales/ru.yml
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
ru:
|
||||||
|
hello: "Привет, мир"
|
||||||
|
brand:
|
||||||
|
name: "Today AI Weather"
|
||||||
|
title:
|
||||||
|
cities: "Города"
|
||||||
|
arts: "Искусство"
|
||||||
|
sign_in: "Войти"
|
||||||
|
sign_out: "Выйти"
|
||||||
|
settings: "Настройки"
|
||||||
|
admin_dashboard: "Панель администратора"
|
||||||
|
latest_weather_art: "Последнее погодное искусство"
|
||||||
|
popular_weather_art: "Популярное погодное искусство"
|
||||||
|
ai_prompt: "AI подсказка"
|
||||||
|
text:
|
||||||
|
latest_from: "Последнее от"
|
||||||
|
search_cities: "Поиск городов..."
|
||||||
|
all_regions: "Все регионы"
|
||||||
|
all_countries: "Все страны"
|
||||||
|
all_in: "Все в"
|
||||||
|
showing: "Показано"
|
||||||
|
weather_arts: "Погодное искусство"
|
||||||
|
newest_first: "Сначала новые"
|
||||||
|
oldest_first: "Сначала старые"
|
||||||
|
cities:
|
||||||
|
title: "Исследуйте города"
|
||||||
|
arts:
|
||||||
|
title: "Галерея погодного искусства"
|
||||||
|
subtitle: "Откройте для себя AI-сгенерированное погодное искусство из городов по всему миру"
|
||||||
|
home:
|
||||||
|
headline_html: Где погода встречается<br>с искусственным интеллектом
|
||||||
|
subtitle:
|
||||||
|
Познакомьтесь с погодой через призму искусства, созданного искусственным интеллектом,
|
||||||
|
открывая новый взгляд на ежедневные метеорологические явления.
|
||||||
|
button:
|
||||||
|
explore_cities: "Исследовать города"
|
||||||
|
view_detail: "Посмотреть детали"
|
||||||
|
view_all_weather_arts: "Посмотреть все погодное искусство"
|
||||||
|
back_to_cities: "Вернуться к городам"
|
||||||
|
back_to: "Вернуться к"
|
||||||
|
card:
|
||||||
|
temperature: "Температура"
|
||||||
|
wind: "Ветер"
|
||||||
|
humidity: "Влажность"
|
||||||
|
visibility: "Видимость"
|
||||||
|
pressure: "Давление"
|
||||||
|
cloud_cover: "Облачность"
|
||||||
|
feel_like: "Ощущается как"
|
||||||
|
relative_humidity: "Относительная влажность"
|
||||||
|
clear_view_distance: "Дальность видимости"
|
||||||
|
atmospheric_pressure: "Атмосферное давление"
|
||||||
|
sky_coverage: "Покрытие неба"
|
||||||
|
pagination:
|
||||||
|
showing_items: "Показано с %{from} по %{to} из %{total} %{items}"
|
||||||
|
items:
|
||||||
|
weather: "записей о погоде"
|
||||||
|
default: "элементов"
|
||||||
|
time:
|
||||||
|
formats:
|
||||||
|
time_only: "%H:%M"
|
||||||
|
with_zone: "%{time} %{zone}"
|
||||||
|
date_and_time: "%{date} %{time}"
|
||||||
|
date:
|
||||||
|
formats:
|
||||||
|
default: "%Y-%m-%d"
|
||||||
|
short: "%b %d"
|
||||||
|
long: "%d %B %Y"
|
67
config/locales/tr.yml
Normal file
67
config/locales/tr.yml
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
tr:
|
||||||
|
hello: "Merhaba dünya"
|
||||||
|
brand:
|
||||||
|
name: "Today AI Weather"
|
||||||
|
title:
|
||||||
|
cities: "Şehirler"
|
||||||
|
arts: "Sanat"
|
||||||
|
sign_in: "Giriş yap"
|
||||||
|
sign_out: "Çıkış yap"
|
||||||
|
settings: "Ayarlar"
|
||||||
|
admin_dashboard: "Yönetici Paneli"
|
||||||
|
latest_weather_art: "En Son Hava Durumu Sanatı"
|
||||||
|
popular_weather_art: "Popüler Hava Durumu Sanatı"
|
||||||
|
ai_prompt: "AI Komut"
|
||||||
|
text:
|
||||||
|
latest_from: "En son"
|
||||||
|
search_cities: "Şehirleri ara..."
|
||||||
|
all_regions: "Tüm Bölgeler"
|
||||||
|
all_countries: "Tüm Ülkeler"
|
||||||
|
all_in: "Tümü"
|
||||||
|
showing: "Gösteriliyor"
|
||||||
|
weather_arts: "Hava Durumu Sanatları"
|
||||||
|
newest_first: "En Yeni Önce"
|
||||||
|
oldest_first: "En Eski Önce"
|
||||||
|
cities:
|
||||||
|
title: "Şehirleri Keşfet"
|
||||||
|
arts:
|
||||||
|
title: "Hava Durumu Sanat Galerisi"
|
||||||
|
subtitle: "Dünya genelindeki şehirlerden AI tarafından oluşturulan hava durumu sanatını keşfedin"
|
||||||
|
home:
|
||||||
|
headline_html: "Hava Durumu<br>Yapay Zeka ile Buluşuyor"
|
||||||
|
subtitle:
|
||||||
|
AI tarafından oluşturulan sanat perspektifinden hava durumunu deneyimleyin,
|
||||||
|
günlük meteorolojik olaylara yeni bir bakış açısı getirin.
|
||||||
|
button:
|
||||||
|
explore_cities: "Şehirleri Keşfet"
|
||||||
|
view_detail: "Detayları Görüntüle"
|
||||||
|
view_all_weather_arts: "Tüm Hava Durumu Sanatlarını Görüntüle"
|
||||||
|
back_to_cities: "Şehirlere Geri Dön"
|
||||||
|
back_to: "Geri Dön"
|
||||||
|
card:
|
||||||
|
temperature: "Sıcaklık"
|
||||||
|
wind: "Rüzgar"
|
||||||
|
humidity: "Nem"
|
||||||
|
visibility: "Görüş Mesafesi"
|
||||||
|
pressure: "Basınç"
|
||||||
|
cloud_cover: "Bulut Örtüsü"
|
||||||
|
feel_like: "Hissedilen"
|
||||||
|
relative_humidity: "Bağıl nem"
|
||||||
|
clear_view_distance: "Net görüş mesafesi"
|
||||||
|
atmospheric_pressure: "Atmosfer basıncı"
|
||||||
|
sky_coverage: "Gökyüzü kapsama"
|
||||||
|
pagination:
|
||||||
|
showing_items: "%{total} %{items} içinden %{from} ile %{to} arası gösteriliyor"
|
||||||
|
items:
|
||||||
|
weather: "hava durumu kayıtları"
|
||||||
|
default: "öğe"
|
||||||
|
time:
|
||||||
|
formats:
|
||||||
|
time_only: "%H:%M"
|
||||||
|
with_zone: "%{time} %{zone}"
|
||||||
|
date_and_time: "%{date} %{time}"
|
||||||
|
date:
|
||||||
|
formats:
|
||||||
|
default: "%Y-%m-%d"
|
||||||
|
short: "%d %b"
|
||||||
|
long: "%d %B %Y"
|
67
config/locales/uk.yml
Normal file
67
config/locales/uk.yml
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
uk:
|
||||||
|
hello: "Привіт світ"
|
||||||
|
brand:
|
||||||
|
name: "Today AI Weather"
|
||||||
|
title:
|
||||||
|
cities: "Міста"
|
||||||
|
arts: "Мистецтво"
|
||||||
|
sign_in: "Увійти"
|
||||||
|
sign_out: "Вийти"
|
||||||
|
settings: "Налаштування"
|
||||||
|
admin_dashboard: "Панель адміністратора"
|
||||||
|
latest_weather_art: "Останнє погодне мистецтво"
|
||||||
|
popular_weather_art: "Популярне погодне мистецтво"
|
||||||
|
ai_prompt: "AI підказка"
|
||||||
|
text:
|
||||||
|
latest_from: "Останнє від"
|
||||||
|
search_cities: "Пошук міст..."
|
||||||
|
all_regions: "Всі регіони"
|
||||||
|
all_countries: "Всі країни"
|
||||||
|
all_in: "Все в"
|
||||||
|
showing: "Показано"
|
||||||
|
weather_arts: "Погодне мистецтво"
|
||||||
|
newest_first: "Спочатку нові"
|
||||||
|
oldest_first: "Спочатку старі"
|
||||||
|
cities:
|
||||||
|
title: "Огляд міст"
|
||||||
|
arts:
|
||||||
|
title: "Галерея погодного мистецтва"
|
||||||
|
subtitle: "Відкрийте для себе згенероване ШІ погодне мистецтво з міст по всьому світу"
|
||||||
|
home:
|
||||||
|
headline_html: Де погода зустрічається<br>зі штучним інтелектом
|
||||||
|
subtitle:
|
||||||
|
Відчуйте погоду через призму мистецтва, створеного ШІ,
|
||||||
|
що дає новий погляд на щоденні метеорологічні явища.
|
||||||
|
button:
|
||||||
|
explore_cities: "Огляд міст"
|
||||||
|
view_detail: "Переглянути деталі"
|
||||||
|
view_all_weather_arts: "Переглянути все погодне мистецтво"
|
||||||
|
back_to_cities: "Назад до міст"
|
||||||
|
back_to: "Назад до"
|
||||||
|
card:
|
||||||
|
temperature: "Температура"
|
||||||
|
wind: "Вітер"
|
||||||
|
humidity: "Вологість"
|
||||||
|
visibility: "Видимість"
|
||||||
|
pressure: "Тиск"
|
||||||
|
cloud_cover: "Хмарність"
|
||||||
|
feel_like: "Відчувається як"
|
||||||
|
relative_humidity: "Відносна вологість"
|
||||||
|
clear_view_distance: "Дальність видимості"
|
||||||
|
atmospheric_pressure: "Атмосферний тиск"
|
||||||
|
sky_coverage: "Покриття неба"
|
||||||
|
pagination:
|
||||||
|
showing_items: "Показано %{from} до %{to} з %{total} %{items}"
|
||||||
|
items:
|
||||||
|
weather: "погодних записів"
|
||||||
|
default: "елементів"
|
||||||
|
time:
|
||||||
|
formats:
|
||||||
|
time_only: "%H:%M"
|
||||||
|
with_zone: "%{time} %{zone}"
|
||||||
|
date_and_time: "%{date} %{time}"
|
||||||
|
date:
|
||||||
|
formats:
|
||||||
|
default: "%Y-%m-%d"
|
||||||
|
short: "%b %d"
|
||||||
|
long: "%d %B %Y"
|
67
config/locales/ur.yml
Normal file
67
config/locales/ur.yml
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
ur:
|
||||||
|
hello: "ہیلو دنیا"
|
||||||
|
brand:
|
||||||
|
name: "ٹوڈے اے آئی ویدر"
|
||||||
|
title:
|
||||||
|
cities: "شہر"
|
||||||
|
arts: "فن"
|
||||||
|
sign_in: "سائن ان"
|
||||||
|
sign_out: "سائن آؤٹ"
|
||||||
|
settings: "ترتیبات"
|
||||||
|
admin_dashboard: "ایڈمن ڈیش بورڈ"
|
||||||
|
latest_weather_art: "تازہ ترین موسمی فن"
|
||||||
|
popular_weather_art: "مقبول موسمی فن"
|
||||||
|
ai_prompt: "اے آئی پرامپٹ"
|
||||||
|
text:
|
||||||
|
latest_from: "تازہ ترین"
|
||||||
|
search_cities: "شہروں کی تلاش..."
|
||||||
|
all_regions: "تمام علاقے"
|
||||||
|
all_countries: "تمام ممالک"
|
||||||
|
all_in: "تمام"
|
||||||
|
showing: "دکھا رہا ہے"
|
||||||
|
weather_arts: "موسمی فن"
|
||||||
|
newest_first: "نیا پہلے"
|
||||||
|
oldest_first: "پرانا پہلے"
|
||||||
|
cities:
|
||||||
|
title: "شہروں کی دریافت"
|
||||||
|
arts:
|
||||||
|
title: "موسمی فن گیلری"
|
||||||
|
subtitle: "دنیا بھر کے شہروں سے اے آئی سے تیار کردہ موسمی فن دریافت کریں"
|
||||||
|
home:
|
||||||
|
headline_html: جہاں موسم<br>مصنوعی ذہانت سے ملتا ہے
|
||||||
|
subtitle:
|
||||||
|
اے آئی سے تیار کردہ فن کے ذریعے موسم کا تجربہ کریں،
|
||||||
|
روزمرہ موسمیاتی مظاہر کو ایک نیا نظریہ فراہم کرتا ہے۔
|
||||||
|
button:
|
||||||
|
explore_cities: "شہروں کی دریافت"
|
||||||
|
view_detail: "تفصیلات دیکھیں"
|
||||||
|
view_all_weather_arts: "تمام موسمی فن دیکھیں"
|
||||||
|
back_to_cities: "شہروں کی طرف واپس"
|
||||||
|
back_to: "واپس"
|
||||||
|
card:
|
||||||
|
temperature: "درجہ حرارت"
|
||||||
|
wind: "ہوا"
|
||||||
|
humidity: "نمی"
|
||||||
|
visibility: "دید"
|
||||||
|
pressure: "دباؤ"
|
||||||
|
cloud_cover: "بادل"
|
||||||
|
feel_like: "محسوس ہوتا ہے"
|
||||||
|
relative_humidity: "اضافی نمی"
|
||||||
|
clear_view_distance: "صاف نظر کی دوری"
|
||||||
|
atmospheric_pressure: "ہوائی دباؤ"
|
||||||
|
sky_coverage: "آسمانی احاطہ"
|
||||||
|
pagination:
|
||||||
|
showing_items: "%{items} کے %{total} میں سے %{from} سے %{to} تک دکھا رہا ہے"
|
||||||
|
items:
|
||||||
|
weather: "موسمی ریکارڈز"
|
||||||
|
default: "آئٹمز"
|
||||||
|
time:
|
||||||
|
formats:
|
||||||
|
time_only: "%H:%M"
|
||||||
|
with_zone: "%{time} %{zone}"
|
||||||
|
date_and_time: "%{date} %{time}"
|
||||||
|
date:
|
||||||
|
formats:
|
||||||
|
default: "%Y-%m-%d"
|
||||||
|
short: "%b %d"
|
||||||
|
long: "%B %d, %Y"
|
@ -25,6 +25,7 @@ Rails.application.routes.draw do
|
|||||||
get "cities/index"
|
get "cities/index"
|
||||||
get "cities/show"
|
get "cities/show"
|
||||||
get "home/index"
|
get "home/index"
|
||||||
|
get "sitemaps", to: "sitemaps#index"
|
||||||
get "sitemaps/*path", to: "sitemaps#show", format: false
|
get "sitemaps/*path", to: "sitemaps#show", format: false
|
||||||
get "feed", to: "rss#feed", format: "rss", as: :rss_feed
|
get "feed", to: "rss#feed", format: "rss", as: :rss_feed
|
||||||
|
|
||||||
|
@ -32,7 +32,7 @@ namespace :geo do
|
|||||||
region.update!(
|
region.update!(
|
||||||
name: data["name"],
|
name: data["name"],
|
||||||
code: data["name"],
|
code: data["name"],
|
||||||
translations: data["translations"].to_json,
|
translations: data["translations"].to_json.to_s,
|
||||||
flag: data["flag"] || true,
|
flag: data["flag"] || true,
|
||||||
wiki_data_id: data["wikiDataId"]
|
wiki_data_id: data["wikiDataId"]
|
||||||
)
|
)
|
||||||
|
Loading…
Reference in New Issue
Block a user