1672960080
A Vapor provider for Lingo - a pure Swift localization library ready to be used in Server Side Swift projects.
Add LingoProvider as a dependancy in your Package.swift
file:
dependencies: [
...,
.package(name: "LingoVapor", url: "https://github.com/vapor-community/Lingo-Vapor.git", from: "4.2.0")]
],
targets: [
.target(name: "App", dependencies: [
.product(name: "LingoVapor", package: "Lingo-Vapor")
The version 4.1.0 uses the new version of Lingo where the format of locale identifiers was changed to match RFC 5646. Prior to 4.2.0 _
was used to separate language code and country code in the locale identifier, and now the library uses -
as per RFC.
If you were using any locales which include a country code, you would need to rename related translation files to match the new format.
In the configure.swift
simply initialize the LingoVapor
with a default locale:
import LingoVapor
...
public func configure(_ app: Application) throws {
...
app.lingoVapor.configuration = .init(defaultLocale: "en", localizationsDir: "Localizations")
}
The
localizationsDir
can be omitted, as the Localizations is also the default path. Note that this folder should exist under the workDir.
After you have configured the provider, you can use lingoVapor
service to create Lingo
:
let lingo = try app.lingoVapor.lingo()
...
let localizedTitle = lingo.localize("welcome.title", locale: "en")
To get the locale of a user out of the request, you can use request.locale
. This uses a language, which is in the HTTP header and which is in your available locales, if that exists. Otherwise it falls back to the default locale. Now you can use different locales dynamically:
let localizedTitle = lingo.localize("welcome.title", locale: request.locale)
When overwriting the requested locale, just write the new locale into the session, e.g. like that:
session.data["locale"] = locale
Use the following syntax for defining localizations in a JSON file:
{
"title": "Hello Swift!",
"greeting.message": "Hi %{full-name}!",
"unread.messages": {
"one": "You have one unread message.",
"other": "You have %{count} unread messages."
}
}
In case you want to serv different locales on different subfolders, you can use the LocaleRedirectMiddleware
.
Add in configure.swift
:
import LingoVapor
// Inside `configure(_ app: Application)`:
app.middleware.use(LocaleRedirectMiddleware())
Add in routes.swift
:
import LingoVapor
// Inside `routes(_ app: Application)`:
app.get("home") { /* ... */ }
app.get(":locale", "home") { /* ... */ } // For each route, add the one prefixed by the `locale` parameter
That way, going to /home/
will redirect you to /<locale>/home/
(with <locale>
corresponding to your browser locale), and going to /fr/home/
will display homepage in french whatever the browser locale is.
When using Leaf as templating engine, you can use LocalizeTag
, LocaleTag
and LocaleLinksTag
from LingoVaporLeaf
for localization inside the templates.
Add in configure.swift
:
import LingoVaporLeaf
// Inside `configure(_ app: Application)`:
app.leaf.tags["localize"] = LocalizeTag()
app.leaf.tags["locale"] = LocaleTag()
app.leaf.tags["localeLinks"] = LocaleLinksTag()
Afterwards you can call them inside the Leaf templates:
<!-- String localization -->
#localize("thisisthelingokey")
#localize("lingokeywithvariable", "{\"foo\":\"bar\"}")
<!-- Get current locale -->
<html lang="#locale()">
<!-- Generate link canonical and alternate tags -->
#localeLinks("http://example.com/", "/canonical/path/")
Author: Vapor-community
Source Code: https://github.com/vapor-community/Lingo-Vapor
License: MIT license
#swift #localization #server #vapor
1672960080
A Vapor provider for Lingo - a pure Swift localization library ready to be used in Server Side Swift projects.
Add LingoProvider as a dependancy in your Package.swift
file:
dependencies: [
...,
.package(name: "LingoVapor", url: "https://github.com/vapor-community/Lingo-Vapor.git", from: "4.2.0")]
],
targets: [
.target(name: "App", dependencies: [
.product(name: "LingoVapor", package: "Lingo-Vapor")
The version 4.1.0 uses the new version of Lingo where the format of locale identifiers was changed to match RFC 5646. Prior to 4.2.0 _
was used to separate language code and country code in the locale identifier, and now the library uses -
as per RFC.
If you were using any locales which include a country code, you would need to rename related translation files to match the new format.
In the configure.swift
simply initialize the LingoVapor
with a default locale:
import LingoVapor
...
public func configure(_ app: Application) throws {
...
app.lingoVapor.configuration = .init(defaultLocale: "en", localizationsDir: "Localizations")
}
The
localizationsDir
can be omitted, as the Localizations is also the default path. Note that this folder should exist under the workDir.
After you have configured the provider, you can use lingoVapor
service to create Lingo
:
let lingo = try app.lingoVapor.lingo()
...
let localizedTitle = lingo.localize("welcome.title", locale: "en")
To get the locale of a user out of the request, you can use request.locale
. This uses a language, which is in the HTTP header and which is in your available locales, if that exists. Otherwise it falls back to the default locale. Now you can use different locales dynamically:
let localizedTitle = lingo.localize("welcome.title", locale: request.locale)
When overwriting the requested locale, just write the new locale into the session, e.g. like that:
session.data["locale"] = locale
Use the following syntax for defining localizations in a JSON file:
{
"title": "Hello Swift!",
"greeting.message": "Hi %{full-name}!",
"unread.messages": {
"one": "You have one unread message.",
"other": "You have %{count} unread messages."
}
}
In case you want to serv different locales on different subfolders, you can use the LocaleRedirectMiddleware
.
Add in configure.swift
:
import LingoVapor
// Inside `configure(_ app: Application)`:
app.middleware.use(LocaleRedirectMiddleware())
Add in routes.swift
:
import LingoVapor
// Inside `routes(_ app: Application)`:
app.get("home") { /* ... */ }
app.get(":locale", "home") { /* ... */ } // For each route, add the one prefixed by the `locale` parameter
That way, going to /home/
will redirect you to /<locale>/home/
(with <locale>
corresponding to your browser locale), and going to /fr/home/
will display homepage in french whatever the browser locale is.
When using Leaf as templating engine, you can use LocalizeTag
, LocaleTag
and LocaleLinksTag
from LingoVaporLeaf
for localization inside the templates.
Add in configure.swift
:
import LingoVaporLeaf
// Inside `configure(_ app: Application)`:
app.leaf.tags["localize"] = LocalizeTag()
app.leaf.tags["locale"] = LocaleTag()
app.leaf.tags["localeLinks"] = LocaleLinksTag()
Afterwards you can call them inside the Leaf templates:
<!-- String localization -->
#localize("thisisthelingokey")
#localize("lingokeywithvariable", "{\"foo\":\"bar\"}")
<!-- Get current locale -->
<html lang="#locale()">
<!-- Generate link canonical and alternate tags -->
#localeLinks("http://example.com/", "/canonical/path/")
Author: Vapor-community
Source Code: https://github.com/vapor-community/Lingo-Vapor
License: MIT license
1609999986
A thoroughly researched list of top Swift developers with ratings & reviews to help find the best Swift development companies around the world.
#swift development service providers #best swift development companies #top swift development companies #swift development solutions #top swift developers #swift
1600430400
Swift is a fast and efficient general-purpose programming language that provides real-time feedback and can be seamlessly incorporated into existing Objective-C code. This is why developers are able to write safer, more reliable code while saving time. It aims to be the best language that can be used for various purposes ranging from systems programming to mobile as well as desktop apps and scaling up to cloud services.
Below here, we list down the 10 best online resources to learn Swift language.
(The list is in no particular order)
#developers corner #free online resources to learn swift language #learn swift #learn swift free #learn swift online free #resources to learn swift #swift language #swift programming
1594193714
Want to create a native iOS application for your Startup?
Hire Dedicated Swift Developers for end-to-end services like development, migration, upgrade, testing, and support & maintenance. Trust HourlyDeveloper.io our Swift development team for iOS device apps that are high on performance and security.
Consult with experts:- https://bit.ly/2C5M6cz
#hire dedicated swift developers #swift developers #swift development company #swift development services #swift development #swift
1625465520
In this example i will show you localization - laravel localization example.
Laravel’s localization features provide a convenient way to retrieve text in different languages, allowing you to easily support multiple languages within your application. So here i will show you how to create localization or laravel dynamic language.
#localization - laravel localization example #localization tutorial #localization #laravel multi languag #laravel documentation #laravel localization