Repository files navigation

Multilingual Nova (using default nova fields)

Latest Version on PackagistTotal Downloads

This package allows you to switch Nova language. Languages could be retrieved as array from config file or from database.

Requirements

RequirementsVersion
PHP^8.0
Laravel^8.0
Laravel Nova~3.0

Installation

You can install the package via composer:

composer require digitalcloud/multilingual-nova

You can publish the config file:

php artisan vendor:publish --provider="Digitalcloud\MultilingualNova\FieldServiceProvider"

This is the content of the file which will be published at config/multilingual.php

<?phpreturn [
/* * The source of supported locales on the application. * Available selection "array", "database". Default array. * When you set source "array" you can declare your languages from below at locales. * And when you set source "database" you can declare languages model from below and follow database instructions. */'source' => 'array',
/* * If you choose array selection, you should add all supported translation on it as "code" => "label" */'locales' => [
'en' => 'English',
'ar' => 'Arabic',
'de' => 'Deutsch'
],
/* * If you choose database selection, you should create or choose the model responsible for retrieving supported translations. * If there is not existed model for retrieving supported translations, you must create a new model and must contain two columns from values "code_field", "label_field". * And choose the 'code_field' for example "en","ar","ru"... * And choose the 'label_field' which will be shown for users, for example "English","EN", .... */'database' => [
'model' => 'App\\Language',
'code_field' => 'code',
'label_field' => 'label'
],
/* * The view style you want to show on index & details page. * Available selection "button", "list", "mix" default button. */'style' => 'button',
/* * If you choose mix selection, you can define after how many languages should the button convert to list. */'convert_to_list_after' => 3
];

Usage

Nova Language Tool

You can use it as a tool by registering it with Nova. This is typically done in the tools method of the NovaServiceProvider, in app/Providers/NovaServiceProvider.php.

useDigitalcloud\MultilingualNova\NovaLanguageTool;
// ....publicfunctiontools()
{
return [
// ...newNovaLanguageTool(),
// ...
];
}

Nova Language Field:

You can add Multilingual field which will show languages to your resource.

useDigitalcloud\MultilingualNova\Multilingual;
// ....publicfunctionfields(Request$request)
{
return [
// ...
Multilingual::make('Language'),
// ...
];
}

Note: the field is a virtual field, and it's not required to be a database column. You can consider it as a language switcher input.

In index and detail page, the field will allow you to go to edit form with the selected language. In create and update page, the field allows you to change the language of inputs in the form in easy and direct way.

Model:

We use Spatie laravel translatable

useSpatie\Translatable\HasTranslations;
// ....class User extends Model
{
use HasTranslations;
protected$fillable = ['name'];
protected$translatable = ['name'];
}

Defining Locales

You can set the source of locales in the config file. Possible options is array or database. In case your language source is array, you need to add allowed languages in the locales array in the config file. When your language source is database, you need to configure the eloquent model of the language table, the column of the language code and the column of the language label.

Alternatively, you can override the config locales using setLocales(...) function:

useDigitalcloud\MultilingualNova\Multilingual;
// ....publicfunctionfields(Request$request)
{
return [
// ...
Multilingual::make('Language')->setLocales([
'ar' => 'Arabic',
'en' => 'English',
'de' => 'Deutsch',
]),
// ...
];
}

Testing

composer test

Changelog

Please see CHANGELOG for more information on what has changed recently.

Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

Displaying Options

This tool allows you to switch between displaying style of the language selector field. Possible displaying options are button, list or mix. By default, the displaying style is button. If the field has a translation of a specific language, the button will be a blue one - primary button, and if no translation available the button will be grey - default button.

If your application supports many languages, this button displaying style is not suitable, so list displaying will be more suitable. With list displaying, locales are grouped in a dropdown list, allowing you to select an option from this list.

Other perfect option for displaying languages, is mix. It allows you to mix between button and list displaying options. For example, if the system supported less than three locales, then they will display as button otherwise list will be selected. This case can be achieved by setting the convert_to_list_after in the config file with 3 or whatever value you want.

Features

  • Display supported locales in the index view.
  • Allow you to edit any resource in any supported locale.
  • NO ADDITIONAL FIELDS, just use the default laravel form fields.
  • Quick switch between languages in index, details, create and update pages.
  • Support Relations fields and sub tables.
  • Auto fill form fields with default/fallback language content.
  • Display translated/untranslated status for each locale.
  • List the supported locale using Config file.

Roadmap

  • Display translated/untranslated status for each locale.
  • List the supported locale using Config file.
  • Manage the supported locale using Database resource.
  • Autodetect translatable Models.
  • Better support for untranslatable fields.

Screenshots

Index page

Index languages buttons

Create/Update page

mmmm

Language Tool

multiligual tool

About

πŸ’ͺ Multilingual Nova (using default nova fields)

Resources

Security policy

Stars

65 stars

Watchers

7 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

Multilingual Nova (using default nova fields)

Latest Version on PackagistTotal Downloads

This package allows you to switch Nova language. Languages could be retrieved as array from config file or from database.

Requirements

RequirementsVersion
PHP^8.0
Laravel^8.0
Laravel Nova~3.0

Installation

You can install the package via composer:

composer require digitalcloud/multilingual-nova

You can publish the config file:

php artisan vendor:publish --provider="Digitalcloud\MultilingualNova\FieldServiceProvider"

This is the content of the file which will be published at config/multilingual.php

<?phpreturn [
/* * The source of supported locales on the application. * Available selection "array", "database". Default array. * When you set source "array" you can declare your languages from below at locales. * And when you set source "database" you can declare languages model from below and follow database instructions. */'source' => 'array',
/* * If you choose array selection, you should add all supported translation on it as "code" => "label" */'locales' => [
'en' => 'English',
'ar' => 'Arabic',
'de' => 'Deutsch'
],
/* * If you choose database selection, you should create or choose the model responsible for retrieving supported translations. * If there is not existed model for retrieving supported translations, you must create a new model and must contain two columns from values "code_field", "label_field". * And choose the 'code_field' for example "en","ar","ru"... * And choose the 'label_field' which will be shown for users, for example "English","EN", .... */'database' => [
'model' => 'App\\Language',
'code_field' => 'code',
'label_field' => 'label'
],
/* * The view style you want to show on index & details page. * Available selection "button", "list", "mix" default button. */'style' => 'button',
/* * If you choose mix selection, you can define after how many languages should the button convert to list. */'convert_to_list_after' => 3
];

Usage

Nova Language Tool

You can use it as a tool by registering it with Nova. This is typically done in the tools method of the NovaServiceProvider, in app/Providers/NovaServiceProvider.php.

useDigitalcloud\MultilingualNova\NovaLanguageTool;
// ....publicfunctiontools()
{
return [
// ...newNovaLanguageTool(),
// ...
];
}

Nova Language Field:

You can add Multilingual field which will show languages to your resource.

useDigitalcloud\MultilingualNova\Multilingual;
// ....publicfunctionfields(Request$request)
{
return [
// ...
Multilingual::make('Language'),
// ...
];
}

Note: the field is a virtual field, and it's not required to be a database column. You can consider it as a language switcher input.

In index and detail page, the field will allow you to go to edit form with the selected language. In create and update page, the field allows you to change the language of inputs in the form in easy and direct way.

Model:

We use Spatie laravel translatable

useSpatie\Translatable\HasTranslations;
// ....class User extends Model
{
use HasTranslations;
protected$fillable = ['name'];
protected$translatable = ['name'];
}

Defining Locales

You can set the source of locales in the config file. Possible options is array or database. In case your language source is array, you need to add allowed languages in the locales array in the config file. When your language source is database, you need to configure the eloquent model of the language table, the column of the language code and the column of the language label.

Alternatively, you can override the config locales using setLocales(...) function:

useDigitalcloud\MultilingualNova\Multilingual;
// ....publicfunctionfields(Request$request)
{
return [
// ...
Multilingual::make('Language')->setLocales([
'ar' => 'Arabic',
'en' => 'English',
'de' => 'Deutsch',
]),
// ...
];
}

Testing

composer test

Changelog

Please see CHANGELOG for more information on what has changed recently.

Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

Displaying Options

This tool allows you to switch between displaying style of the language selector field. Possible displaying options are button, list or mix. By default, the displaying style is button. If the field has a translation of a specific language, the button will be a blue one - primary button, and if no translation available the button will be grey - default button.

If your application supports many languages, this button displaying style is not suitable, so list displaying will be more suitable. With list displaying, locales are grouped in a dropdown list, allowing you to select an option from this list.

Other perfect option for displaying languages, is mix. It allows you to mix between button and list displaying options. For example, if the system supported less than three locales, then they will display as button otherwise list will be selected. This case can be achieved by setting the convert_to_list_after in the config file with 3 or whatever value you want.

Features

  • Display supported locales in the index view.
  • Allow you to edit any resource in any supported locale.
  • NO ADDITIONAL FIELDS, just use the default laravel form fields.
  • Quick switch between languages in index, details, create and update pages.
  • Support Relations fields and sub tables.
  • Auto fill form fields with default/fallback language content.
  • Display translated/untranslated status for each locale.
  • List the supported locale using Config file.

Roadmap

  • Display translated/untranslated status for each locale.
  • List the supported locale using Config file.
  • Manage the supported locale using Database resource.
  • Autodetect translatable Models.
  • Better support for untranslatable fields.

Screenshots

Index page

Index languages buttons

Create/Update page

mmmm

Language Tool

multiligual tool

About

πŸ’ͺ Multilingual Nova (using default nova fields)

Resources

Security policy

Stars

65 stars

Watchers

7 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Multilingual Nova (using default nova fields)

Latest Version on PackagistTotal Downloads

This package allows you to switch Nova language. Languages could be retrieved as array from config file or from database.

Requirements

RequirementsVersion
PHP^8.0
Laravel^8.0
Laravel Nova~3.0

Installation

You can install the package via composer:

composer require digitalcloud/multilingual-nova

You can publish the config file:

php artisan vendor:publish --provider="Digitalcloud\MultilingualNova\FieldServiceProvider"

This is the content of the file which will be published at config/multilingual.php

<?phpreturn [
/* * The source of supported locales on the application. * Available selection "array", "database". Default array. * When you set source "array" you can declare your languages from below at locales. * And when you set source "database" you can declare languages model from below and follow database instructions. */'source' => 'array',
/* * If you choose array selection, you should add all supported translation on it as "code" => "label" */'locales' => [
'en' => 'English',
'ar' => 'Arabic',
'de' => 'Deutsch'
],
/* * If you choose database selection, you should create or choose the model responsible for retrieving supported translations. * If there is not existed model for retrieving supported translations, you must create a new model and must contain two columns from values "code_field", "label_field". * And choose the 'code_field' for example "en","ar","ru"... * And choose the 'label_field' which will be shown for users, for example "English","EN", .... */'database' => [
'model' => 'App\\Language',
'code_field' => 'code',
'label_field' => 'label'
],
/* * The view style you want to show on index & details page. * Available selection "button", "list", "mix" default button. */'style' => 'button',
/* * If you choose mix selection, you can define after how many languages should the button convert to list. */'convert_to_list_after' => 3
];

Usage

Nova Language Tool

You can use it as a tool by registering it with Nova. This is typically done in the tools method of the NovaServiceProvider, in app/Providers/NovaServiceProvider.php.

useDigitalcloud\MultilingualNova\NovaLanguageTool;
// ....publicfunctiontools()
{
return [
// ...newNovaLanguageTool(),
// ...
];
}

Nova Language Field:

You can add Multilingual field which will show languages to your resource.

useDigitalcloud\MultilingualNova\Multilingual;
// ....publicfunctionfields(Request$request)
{
return [
// ...
Multilingual::make('Language'),
// ...
];
}

Note: the field is a virtual field, and it's not required to be a database column. You can consider it as a language switcher input.

In index and detail page, the field will allow you to go to edit form with the selected language. In create and update page, the field allows you to change the language of inputs in the form in easy and direct way.

Model:

We use Spatie laravel translatable

useSpatie\Translatable\HasTranslations;
// ....class User extends Model
{
use HasTranslations;
protected$fillable = ['name'];
protected$translatable = ['name'];
}

Defining Locales

You can set the source of locales in the config file. Possible options is array or database. In case your language source is array, you need to add allowed languages in the locales array in the config file. When your language source is database, you need to configure the eloquent model of the language table, the column of the language code and the column of the language label.

Alternatively, you can override the config locales using setLocales(...) function:

useDigitalcloud\MultilingualNova\Multilingual;
// ....publicfunctionfields(Request$request)
{
return [
// ...
Multilingual::make('Language')->setLocales([
'ar' => 'Arabic',
'en' => 'English',
'de' => 'Deutsch',
]),
// ...
];
}

Testing

composer test

Changelog

Please see CHANGELOG for more information on what has changed recently.

Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

Displaying Options

This tool allows you to switch between displaying style of the language selector field. Possible displaying options are button, list or mix. By default, the displaying style is button. If the field has a translation of a specific language, the button will be a blue one - primary button, and if no translation available the button will be grey - default button.

If your application supports many languages, this button displaying style is not suitable, so list displaying will be more suitable. With list displaying, locales are grouped in a dropdown list, allowing you to select an option from this list.

Other perfect option for displaying languages, is mix. It allows you to mix between button and list displaying options. For example, if the system supported less than three locales, then they will display as button otherwise list will be selected. This case can be achieved by setting the convert_to_list_after in the config file with 3 or whatever value you want.

Features

  • Display supported locales in the index view.
  • Allow you to edit any resource in any supported locale.
  • NO ADDITIONAL FIELDS, just use the default laravel form fields.
  • Quick switch between languages in index, details, create and update pages.
  • Support Relations fields and sub tables.
  • Auto fill form fields with default/fallback language content.
  • Display translated/untranslated status for each locale.
  • List the supported locale using Config file.

Roadmap

  • Display translated/untranslated status for each locale.
  • List the supported locale using Config file.
  • Manage the supported locale using Database resource.
  • Autodetect translatable Models.
  • Better support for untranslatable fields.

Screenshots

Index page

Index languages buttons

Create/Update page

mmmm

Language Tool

multiligual tool

About

πŸ’ͺ Multilingual Nova (using default nova fields)

Resources

Security policy

Stars

65 stars

Watchers

7 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Multilingual Nova (using default nova fields)

Latest Version on PackagistTotal Downloads

This package allows you to switch Nova language. Languages could be retrieved as array from config file or from database.

Requirements

RequirementsVersion
PHP^8.0
Laravel^8.0
Laravel Nova~3.0

Installation

You can install the package via composer:

composer require digitalcloud/multilingual-nova

You can publish the config file:

php artisan vendor:publish --provider="Digitalcloud\MultilingualNova\FieldServiceProvider"

This is the content of the file which will be published at config/multilingual.php

<?phpreturn [
/* * The source of supported locales on the application. * Available selection "array", "database". Default array. * When you set source "array" you can declare your languages from below at locales. * And when you set source "database" you can declare languages model from below and follow database instructions. */'source' => 'array',
/* * If you choose array selection, you should add all supported translation on it as "code" => "label" */'locales' => [
'en' => 'English',
'ar' => 'Arabic',
'de' => 'Deutsch'
],
/* * If you choose database selection, you should create or choose the model responsible for retrieving supported translations. * If there is not existed model for retrieving supported translations, you must create a new model and must contain two columns from values "code_field", "label_field". * And choose the 'code_field' for example "en","ar","ru"... * And choose the 'label_field' which will be shown for users, for example "English","EN", .... */'database' => [
'model' => 'App\\Language',
'code_field' => 'code',
'label_field' => 'label'
],
/* * The view style you want to show on index & details page. * Available selection "button", "list", "mix" default button. */'style' => 'button',
/* * If you choose mix selection, you can define after how many languages should the button convert to list. */'convert_to_list_after' => 3
];

Usage

Nova Language Tool

You can use it as a tool by registering it with Nova. This is typically done in the tools method of the NovaServiceProvider, in app/Providers/NovaServiceProvider.php.

useDigitalcloud\MultilingualNova\NovaLanguageTool;
// ....publicfunctiontools()
{
return [
// ...newNovaLanguageTool(),
// ...
];
}

Nova Language Field:

You can add Multilingual field which will show languages to your resource.

useDigitalcloud\MultilingualNova\Multilingual;
// ....publicfunctionfields(Request$request)
{
return [
// ...
Multilingual::make('Language'),
// ...
];
}

Note: the field is a virtual field, and it's not required to be a database column. You can consider it as a language switcher input.

In index and detail page, the field will allow you to go to edit form with the selected language. In create and update page, the field allows you to change the language of inputs in the form in easy and direct way.

Model:

We use Spatie laravel translatable

useSpatie\Translatable\HasTranslations;
// ....class User extends Model
{
use HasTranslations;
protected$fillable = ['name'];
protected$translatable = ['name'];
}

Defining Locales

You can set the source of locales in the config file. Possible options is array or database. In case your language source is array, you need to add allowed languages in the locales array in the config file. When your language source is database, you need to configure the eloquent model of the language table, the column of the language code and the column of the language label.

Alternatively, you can override the config locales using setLocales(...) function:

useDigitalcloud\MultilingualNova\Multilingual;
// ....publicfunctionfields(Request$request)
{
return [
// ...
Multilingual::make('Language')->setLocales([
'ar' => 'Arabic',
'en' => 'English',
'de' => 'Deutsch',
]),
// ...
];
}

Testing

composer test

Changelog

Please see CHANGELOG for more information on what has changed recently.

Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

Displaying Options

This tool allows you to switch between displaying style of the language selector field. Possible displaying options are button, list or mix. By default, the displaying style is button. If the field has a translation of a specific language, the button will be a blue one - primary button, and if no translation available the button will be grey - default button.

If your application supports many languages, this button displaying style is not suitable, so list displaying will be more suitable. With list displaying, locales are grouped in a dropdown list, allowing you to select an option from this list.

Other perfect option for displaying languages, is mix. It allows you to mix between button and list displaying options. For example, if the system supported less than three locales, then they will display as button otherwise list will be selected. This case can be achieved by setting the convert_to_list_after in the config file with 3 or whatever value you want.

Features

  • Display supported locales in the index view.
  • Allow you to edit any resource in any supported locale.
  • NO ADDITIONAL FIELDS, just use the default laravel form fields.
  • Quick switch between languages in index, details, create and update pages.
  • Support Relations fields and sub tables.
  • Auto fill form fields with default/fallback language content.
  • Display translated/untranslated status for each locale.
  • List the supported locale using Config file.

Roadmap

  • Display translated/untranslated status for each locale.
  • List the supported locale using Config file.
  • Manage the supported locale using Database resource.
  • Autodetect translatable Models.
  • Better support for untranslatable fields.

Screenshots

Index page

Index languages buttons

Create/Update page

mmmm

Language Tool

multiligual tool

About

πŸ’ͺ Multilingual Nova (using default nova fields)

Resources

Security policy

Stars

65 stars

Watchers

7 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

Multilingual Nova (using default nova fields)

Latest Version on PackagistTotal Downloads

This package allows you to switch Nova language. Languages could be retrieved as array from config file or from database.

Requirements

RequirementsVersion
PHP^8.0
Laravel^8.0
Laravel Nova~3.0

Installation

You can install the package via composer:

composer require digitalcloud/multilingual-nova

You can publish the config file:

php artisan vendor:publish --provider="Digitalcloud\MultilingualNova\FieldServiceProvider"

This is the content of the file which will be published at config/multilingual.php

<?phpreturn [
/* * The source of supported locales on the application. * Available selection "array", "database". Default array. * When you set source "array" you can declare your languages from below at locales. * And when you set source "database" you can declare languages model from below and follow database instructions. */'source' => 'array',
/* * If you choose array selection, you should add all supported translation on it as "code" => "label" */'locales' => [
'en' => 'English',
'ar' => 'Arabic',
'de' => 'Deutsch'
],
/* * If you choose database selection, you should create or choose the model responsible for retrieving supported translations. * If there is not existed model for retrieving supported translations, you must create a new model and must contain two columns from values "code_field", "label_field". * And choose the 'code_field' for example "en","ar","ru"... * And choose the 'label_field' which will be shown for users, for example "English","EN", .... */'database' => [
'model' => 'App\\Language',
'code_field' => 'code',
'label_field' => 'label'
],
/* * The view style you want to show on index & details page. * Available selection "button", "list", "mix" default button. */'style' => 'button',
/* * If you choose mix selection, you can define after how many languages should the button convert to list. */'convert_to_list_after' => 3
];

Usage

Nova Language Tool

You can use it as a tool by registering it with Nova. This is typically done in the tools method of the NovaServiceProvider, in app/Providers/NovaServiceProvider.php.

useDigitalcloud\MultilingualNova\NovaLanguageTool;
// ....publicfunctiontools()
{
return [
// ...newNovaLanguageTool(),
// ...
];
}

Nova Language Field:

You can add Multilingual field which will show languages to your resource.

useDigitalcloud\MultilingualNova\Multilingual;
// ....publicfunctionfields(Request$request)
{
return [
// ...
Multilingual::make('Language'),
// ...
];
}

Note: the field is a virtual field, and it's not required to be a database column. You can consider it as a language switcher input.

In index and detail page, the field will allow you to go to edit form with the selected language. In create and update page, the field allows you to change the language of inputs in the form in easy and direct way.

Model:

We use Spatie laravel translatable

useSpatie\Translatable\HasTranslations;
// ....class User extends Model
{
use HasTranslations;
protected$fillable = ['name'];
protected$translatable = ['name'];
}

Defining Locales

You can set the source of locales in the config file. Possible options is array or database. In case your language source is array, you need to add allowed languages in the locales array in the config file. When your language source is database, you need to configure the eloquent model of the language table, the column of the language code and the column of the language label.

Alternatively, you can override the config locales using setLocales(...) function:

useDigitalcloud\MultilingualNova\Multilingual;
// ....publicfunctionfields(Request$request)
{
return [
// ...
Multilingual::make('Language')->setLocales([
'ar' => 'Arabic',
'en' => 'English',
'de' => 'Deutsch',
]),
// ...
];
}

Testing

composer test

Changelog

Please see CHANGELOG for more information on what has changed recently.

Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

Displaying Options

This tool allows you to switch between displaying style of the language selector field. Possible displaying options are button, list or mix. By default, the displaying style is button. If the field has a translation of a specific language, the button will be a blue one - primary button, and if no translation available the button will be grey - default button.

If your application supports many languages, this button displaying style is not suitable, so list displaying will be more suitable. With list displaying, locales are grouped in a dropdown list, allowing you to select an option from this list.

Other perfect option for displaying languages, is mix. It allows you to mix between button and list displaying options. For example, if the system supported less than three locales, then they will display as button otherwise list will be selected. This case can be achieved by setting the convert_to_list_after in the config file with 3 or whatever value you want.

Features

  • Display supported locales in the index view.
  • Allow you to edit any resource in any supported locale.
  • NO ADDITIONAL FIELDS, just use the default laravel form fields.
  • Quick switch between languages in index, details, create and update pages.
  • Support Relations fields and sub tables.
  • Auto fill form fields with default/fallback language content.
  • Display translated/untranslated status for each locale.
  • List the supported locale using Config file.

Roadmap

  • Display translated/untranslated status for each locale.
  • List the supported locale using Config file.
  • Manage the supported locale using Database resource.
  • Autodetect translatable Models.
  • Better support for untranslatable fields.

Screenshots

Index page

Index languages buttons

Create/Update page

mmmm

Language Tool

multiligual tool

About

πŸ’ͺ Multilingual Nova (using default nova fields)

Resources

Security policy

Stars

65 stars

Watchers

7 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Multilingual Nova (using default nova fields)

Latest Version on PackagistTotal Downloads

This package allows you to switch Nova language. Languages could be retrieved as array from config file or from database.

Requirements

RequirementsVersion
PHP^8.0
Laravel^8.0
Laravel Nova~3.0

Installation

You can install the package via composer:

composer require digitalcloud/multilingual-nova

You can publish the config file:

php artisan vendor:publish --provider="Digitalcloud\MultilingualNova\FieldServiceProvider"

This is the content of the file which will be published at config/multilingual.php

<?phpreturn [
/* * The source of supported locales on the application. * Available selection "array", "database". Default array. * When you set source "array" you can declare your languages from below at locales. * And when you set source "database" you can declare languages model from below and follow database instructions. */'source' => 'array',
/* * If you choose array selection, you should add all supported translation on it as "code" => "label" */'locales' => [
'en' => 'English',
'ar' => 'Arabic',
'de' => 'Deutsch'
],
/* * If you choose database selection, you should create or choose the model responsible for retrieving supported translations. * If there is not existed model for retrieving supported translations, you must create a new model and must contain two columns from values "code_field", "label_field". * And choose the 'code_field' for example "en","ar","ru"... * And choose the 'label_field' which will be shown for users, for example "English","EN", .... */'database' => [
'model' => 'App\\Language',
'code_field' => 'code',
'label_field' => 'label'
],
/* * The view style you want to show on index & details page. * Available selection "button", "list", "mix" default button. */'style' => 'button',
/* * If you choose mix selection, you can define after how many languages should the button convert to list. */'convert_to_list_after' => 3
];

Usage

Nova Language Tool

You can use it as a tool by registering it with Nova. This is typically done in the tools method of the NovaServiceProvider, in app/Providers/NovaServiceProvider.php.

useDigitalcloud\MultilingualNova\NovaLanguageTool;
// ....publicfunctiontools()
{
return [
// ...newNovaLanguageTool(),
// ...
];
}

Nova Language Field:

You can add Multilingual field which will show languages to your resource.

useDigitalcloud\MultilingualNova\Multilingual;
// ....publicfunctionfields(Request$request)
{
return [
// ...
Multilingual::make('Language'),
// ...
];
}

Note: the field is a virtual field, and it's not required to be a database column. You can consider it as a language switcher input.

In index and detail page, the field will allow you to go to edit form with the selected language. In create and update page, the field allows you to change the language of inputs in the form in easy and direct way.

Model:

We use Spatie laravel translatable

useSpatie\Translatable\HasTranslations;
// ....class User extends Model
{
use HasTranslations;
protected$fillable = ['name'];
protected$translatable = ['name'];
}

Defining Locales

You can set the source of locales in the config file. Possible options is array or database. In case your language source is array, you need to add allowed languages in the locales array in the config file. When your language source is database, you need to configure the eloquent model of the language table, the column of the language code and the column of the language label.

Alternatively, you can override the config locales using setLocales(...) function:

useDigitalcloud\MultilingualNova\Multilingual;
// ....publicfunctionfields(Request$request)
{
return [
// ...
Multilingual::make('Language')->setLocales([
'ar' => 'Arabic',
'en' => 'English',
'de' => 'Deutsch',
]),
// ...
];
}

Testing

composer test

Changelog

Please see CHANGELOG for more information on what has changed recently.

Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

Displaying Options

This tool allows you to switch between displaying style of the language selector field. Possible displaying options are button, list or mix. By default, the displaying style is button. If the field has a translation of a specific language, the button will be a blue one - primary button, and if no translation available the button will be grey - default button.

If your application supports many languages, this button displaying style is not suitable, so list displaying will be more suitable. With list displaying, locales are grouped in a dropdown list, allowing you to select an option from this list.

Other perfect option for displaying languages, is mix. It allows you to mix between button and list displaying options. For example, if the system supported less than three locales, then they will display as button otherwise list will be selected. This case can be achieved by setting the convert_to_list_after in the config file with 3 or whatever value you want.

Features

  • Display supported locales in the index view.
  • Allow you to edit any resource in any supported locale.
  • NO ADDITIONAL FIELDS, just use the default laravel form fields.
  • Quick switch between languages in index, details, create and update pages.
  • Support Relations fields and sub tables.
  • Auto fill form fields with default/fallback language content.
  • Display translated/untranslated status for each locale.
  • List the supported locale using Config file.

Roadmap

  • Display translated/untranslated status for each locale.
  • List the supported locale using Config file.
  • Manage the supported locale using Database resource.
  • Autodetect translatable Models.
  • Better support for untranslatable fields.

Screenshots

Index page

Index languages buttons

Create/Update page

mmmm

Language Tool

multiligual tool

About

πŸ’ͺ Multilingual Nova (using default nova fields)

Resources

Security policy

Stars

65 stars

Watchers

7 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Multilingual Nova (using default nova fields)

Latest Version on PackagistTotal Downloads

This package allows you to switch Nova language. Languages could be retrieved as array from config file or from database.

Requirements

RequirementsVersion
PHP^8.0
Laravel^8.0
Laravel Nova~3.0

Installation

You can install the package via composer:

composer require digitalcloud/multilingual-nova

You can publish the config file:

php artisan vendor:publish --provider="Digitalcloud\MultilingualNova\FieldServiceProvider"

This is the content of the file which will be published at config/multilingual.php

<?phpreturn [
/* * The source of supported locales on the application. * Available selection "array", "database". Default array. * When you set source "array" you can declare your languages from below at locales. * And when you set source "database" you can declare languages model from below and follow database instructions. */'source' => 'array',
/* * If you choose array selection, you should add all supported translation on it as "code" => "label" */'locales' => [
'en' => 'English',
'ar' => 'Arabic',
'de' => 'Deutsch'
],
/* * If you choose database selection, you should create or choose the model responsible for retrieving supported translations. * If there is not existed model for retrieving supported translations, you must create a new model and must contain two columns from values "code_field", "label_field". * And choose the 'code_field' for example "en","ar","ru"... * And choose the 'label_field' which will be shown for users, for example "English","EN", .... */'database' => [
'model' => 'App\\Language',
'code_field' => 'code',
'label_field' => 'label'
],
/* * The view style you want to show on index & details page. * Available selection "button", "list", "mix" default button. */'style' => 'button',
/* * If you choose mix selection, you can define after how many languages should the button convert to list. */'convert_to_list_after' => 3
];

Usage

Nova Language Tool

You can use it as a tool by registering it with Nova. This is typically done in the tools method of the NovaServiceProvider, in app/Providers/NovaServiceProvider.php.

useDigitalcloud\MultilingualNova\NovaLanguageTool;
// ....publicfunctiontools()
{
return [
// ...newNovaLanguageTool(),
// ...
];
}

Nova Language Field:

You can add Multilingual field which will show languages to your resource.

useDigitalcloud\MultilingualNova\Multilingual;
// ....publicfunctionfields(Request$request)
{
return [
// ...
Multilingual::make('Language'),
// ...
];
}

Note: the field is a virtual field, and it's not required to be a database column. You can consider it as a language switcher input.

In index and detail page, the field will allow you to go to edit form with the selected language. In create and update page, the field allows you to change the language of inputs in the form in easy and direct way.

Model:

We use Spatie laravel translatable

useSpatie\Translatable\HasTranslations;
// ....class User extends Model
{
use HasTranslations;
protected$fillable = ['name'];
protected$translatable = ['name'];
}

Defining Locales

You can set the source of locales in the config file. Possible options is array or database. In case your language source is array, you need to add allowed languages in the locales array in the config file. When your language source is database, you need to configure the eloquent model of the language table, the column of the language code and the column of the language label.

Alternatively, you can override the config locales using setLocales(...) function:

useDigitalcloud\MultilingualNova\Multilingual;
// ....publicfunctionfields(Request$request)
{
return [
// ...
Multilingual::make('Language')->setLocales([
'ar' => 'Arabic',
'en' => 'English',
'de' => 'Deutsch',
]),
// ...
];
}

Testing

composer test

Changelog

Please see CHANGELOG for more information on what has changed recently.

Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

Displaying Options

This tool allows you to switch between displaying style of the language selector field. Possible displaying options are button, list or mix. By default, the displaying style is button. If the field has a translation of a specific language, the button will be a blue one - primary button, and if no translation available the button will be grey - default button.

If your application supports many languages, this button displaying style is not suitable, so list displaying will be more suitable. With list displaying, locales are grouped in a dropdown list, allowing you to select an option from this list.

Other perfect option for displaying languages, is mix. It allows you to mix between button and list displaying options. For example, if the system supported less than three locales, then they will display as button otherwise list will be selected. This case can be achieved by setting the convert_to_list_after in the config file with 3 or whatever value you want.

Features

  • Display supported locales in the index view.
  • Allow you to edit any resource in any supported locale.
  • NO ADDITIONAL FIELDS, just use the default laravel form fields.
  • Quick switch between languages in index, details, create and update pages.
  • Support Relations fields and sub tables.
  • Auto fill form fields with default/fallback language content.
  • Display translated/untranslated status for each locale.
  • List the supported locale using Config file.

Roadmap

  • Display translated/untranslated status for each locale.
  • List the supported locale using Config file.
  • Manage the supported locale using Database resource.
  • Autodetect translatable Models.
  • Better support for untranslatable fields.

Screenshots

Index page

Index languages buttons

Create/Update page

mmmm

Language Tool

multiligual tool

About

πŸ’ͺ Multilingual Nova (using default nova fields)

Resources

Security policy

Stars

65 stars

Watchers

7 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

Multilingual Nova (using default nova fields)

Latest Version on PackagistTotal Downloads

This package allows you to switch Nova language. Languages could be retrieved as array from config file or from database.

Requirements

RequirementsVersion
PHP^8.0
Laravel^8.0
Laravel Nova~3.0

Installation

You can install the package via composer:

composer require digitalcloud/multilingual-nova

You can publish the config file:

php artisan vendor:publish --provider="Digitalcloud\MultilingualNova\FieldServiceProvider"

This is the content of the file which will be published at config/multilingual.php

<?phpreturn [
/* * The source of supported locales on the application. * Available selection "array", "database". Default array. * When you set source "array" you can declare your languages from below at locales. * And when you set source "database" you can declare languages model from below and follow database instructions. */'source' => 'array',
/* * If you choose array selection, you should add all supported translation on it as "code" => "label" */'locales' => [
'en' => 'English',
'ar' => 'Arabic',
'de' => 'Deutsch'
],
/* * If you choose database selection, you should create or choose the model responsible for retrieving supported translations. * If there is not existed model for retrieving supported translations, you must create a new model and must contain two columns from values "code_field", "label_field". * And choose the 'code_field' for example "en","ar","ru"... * And choose the 'label_field' which will be shown for users, for example "English","EN", .... */'database' => [
'model' => 'App\\Language',
'code_field' => 'code',
'label_field' => 'label'
],
/* * The view style you want to show on index & details page. * Available selection "button", "list", "mix" default button. */'style' => 'button',
/* * If you choose mix selection, you can define after how many languages should the button convert to list. */'convert_to_list_after' => 3
];

Usage

Nova Language Tool

You can use it as a tool by registering it with Nova. This is typically done in the tools method of the NovaServiceProvider, in app/Providers/NovaServiceProvider.php.

useDigitalcloud\MultilingualNova\NovaLanguageTool;
// ....publicfunctiontools()
{
return [
// ...newNovaLanguageTool(),
// ...
];
}

Nova Language Field:

You can add Multilingual field which will show languages to your resource.

useDigitalcloud\MultilingualNova\Multilingual;
// ....publicfunctionfields(Request$request)
{
return [
// ...
Multilingual::make('Language'),
// ...
];
}

Note: the field is a virtual field, and it's not required to be a database column. You can consider it as a language switcher input.

In index and detail page, the field will allow you to go to edit form with the selected language. In create and update page, the field allows you to change the language of inputs in the form in easy and direct way.

Model:

We use Spatie laravel translatable

useSpatie\Translatable\HasTranslations;
// ....class User extends Model
{
use HasTranslations;
protected$fillable = ['name'];
protected$translatable = ['name'];
}

Defining Locales

You can set the source of locales in the config file. Possible options is array or database. In case your language source is array, you need to add allowed languages in the locales array in the config file. When your language source is database, you need to configure the eloquent model of the language table, the column of the language code and the column of the language label.

Alternatively, you can override the config locales using setLocales(...) function:

useDigitalcloud\MultilingualNova\Multilingual;
// ....publicfunctionfields(Request$request)
{
return [
// ...
Multilingual::make('Language')->setLocales([
'ar' => 'Arabic',
'en' => 'English',
'de' => 'Deutsch',
]),
// ...
];
}

Testing

composer test

Changelog

Please see CHANGELOG for more information on what has changed recently.

Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

Displaying Options

This tool allows you to switch between displaying style of the language selector field. Possible displaying options are button, list or mix. By default, the displaying style is button. If the field has a translation of a specific language, the button will be a blue one - primary button, and if no translation available the button will be grey - default button.

If your application supports many languages, this button displaying style is not suitable, so list displaying will be more suitable. With list displaying, locales are grouped in a dropdown list, allowing you to select an option from this list.

Other perfect option for displaying languages, is mix. It allows you to mix between button and list displaying options. For example, if the system supported less than three locales, then they will display as button otherwise list will be selected. This case can be achieved by setting the convert_to_list_after in the config file with 3 or whatever value you want.

Features

  • Display supported locales in the index view.
  • Allow you to edit any resource in any supported locale.
  • NO ADDITIONAL FIELDS, just use the default laravel form fields.
  • Quick switch between languages in index, details, create and update pages.
  • Support Relations fields and sub tables.
  • Auto fill form fields with default/fallback language content.
  • Display translated/untranslated status for each locale.
  • List the supported locale using Config file.

Roadmap

  • Display translated/untranslated status for each locale.
  • List the supported locale using Config file.
  • Manage the supported locale using Database resource.
  • Autodetect translatable Models.
  • Better support for untranslatable fields.

Screenshots

Index page

Index languages buttons

Create/Update page

mmmm

Language Tool

multiligual tool

About

πŸ’ͺ Multilingual Nova (using default nova fields)

Resources

Security policy

Stars

65 stars

Watchers

7 watching

Forks

Releases

Packages

Used by

Contributors

Languages