mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-06-04 18:14:36 -04:00
translations
This commit is contained in:
parent
3735845c44
commit
10050d567b
@ -18,6 +18,7 @@ use App\Http\Requests\Nordigen\ConnectNordigenBankIntegrationRequest;
|
||||
use App\Jobs\Bank\ProcessBankTransactionsNordigen;
|
||||
use App\Models\BankIntegration;
|
||||
use App\Models\Company;
|
||||
use App\Models\User;
|
||||
use App\Utils\Ninja;
|
||||
use Cache;
|
||||
use Illuminate\Http\Request;
|
||||
@ -31,9 +32,11 @@ class NordigenController extends BaseController
|
||||
{
|
||||
$data = $request->all();
|
||||
$context = $request->getTokenContent();
|
||||
$lang = $data['lang'] ?? 'en';
|
||||
|
||||
if (!$context)
|
||||
return view('bank.nordigen.handler', [
|
||||
'lang' => $lang,
|
||||
'failed_reason' => "token-invalid",
|
||||
"redirectUrl" => config("ninja.app_url") . "?action=nordigen_connect&status=failed&reason=token-invalid",
|
||||
]);
|
||||
@ -41,6 +44,7 @@ class NordigenController extends BaseController
|
||||
$context["redirect"] = $data["redirect"];
|
||||
if ($context["context"] != "nordigen" || array_key_exists("requisitionId", $context))
|
||||
return view('bank.nordigen.handler', [
|
||||
'lang' => $lang,
|
||||
'failed_reason' => "token-invalid",
|
||||
"redirectUrl" => ($context["redirect"]) . "?action=nordigen_connect&status=failed&reason=token-invalid",
|
||||
]);
|
||||
@ -50,6 +54,7 @@ class NordigenController extends BaseController
|
||||
|
||||
if (!(config('ninja.nordigen.secret_id') && config('ninja.nordigen.secret_key')))
|
||||
return view('bank.nordigen.handler', [
|
||||
'lang' => $lang,
|
||||
'company' => $company,
|
||||
'account' => $company->account,
|
||||
'failed_reason' => "account-config-invalid",
|
||||
@ -58,6 +63,7 @@ class NordigenController extends BaseController
|
||||
|
||||
if (!(Ninja::isSelfHost() || (Ninja::isHosted() && $account->isPaid() && $account->plan == 'enterprise')))
|
||||
return view('bank.nordigen.handler', [
|
||||
'lang' => $lang,
|
||||
'company' => $company,
|
||||
'account' => $company->account,
|
||||
'failed_reason' => "not-available",
|
||||
@ -69,6 +75,7 @@ class NordigenController extends BaseController
|
||||
// show bank_selection_screen, when institution_id is not present
|
||||
if (!array_key_exists("institution_id", $data)) {
|
||||
$data = [
|
||||
'lang' => $lang,
|
||||
'company' => $company,
|
||||
'account' => $company->account,
|
||||
'institutions' => $nordigen->getInstitutions(),
|
||||
@ -88,6 +95,7 @@ class NordigenController extends BaseController
|
||||
|
||||
if (str_contains($responseBody, '"institution_id"')) // provided institution_id was wrong
|
||||
return view('bank.nordigen.handler', [
|
||||
'lang' => $lang,
|
||||
'company' => $company,
|
||||
'account' => $company->account,
|
||||
'failed_reason' => "institution-invalid",
|
||||
@ -95,6 +103,7 @@ class NordigenController extends BaseController
|
||||
]);
|
||||
else if (str_contains($responseBody, '"reference"')) // this error can occur, when a reference was used double or is invalid => therefor we suggest the frontend to use another token
|
||||
return view('bank.nordigen.handler', [
|
||||
'lang' => $lang,
|
||||
'company' => $company,
|
||||
'account' => $company->account,
|
||||
'failed_reason' => "token-invalid",
|
||||
@ -102,6 +111,7 @@ class NordigenController extends BaseController
|
||||
]);
|
||||
else
|
||||
return view('bank.nordigen.handler', [
|
||||
'lang' => $lang,
|
||||
'company' => $company,
|
||||
'account' => $company->account,
|
||||
'failed_reason' => "unknown",
|
||||
@ -184,10 +194,12 @@ class NordigenController extends BaseController
|
||||
{
|
||||
|
||||
$data = $request->all();
|
||||
$lang = $data['lang'] ?? 'en';
|
||||
|
||||
$context = Cache::get($data["ref"]);
|
||||
if (!$context || $context["context"] != "nordigen" || !array_key_exists("requisitionId", $context))
|
||||
return view('bank.nordigen.handler', [
|
||||
'lang' => $lang,
|
||||
'failed_reason' => "ref-invalid",
|
||||
"redirectUrl" => ($context && array_key_exists("redirect", $context) ? $context["redirect"] : config('ninja.app_url')) . "?action=nordigen_connect&status=failed&reason=ref-invalid",
|
||||
]);
|
||||
@ -198,6 +210,7 @@ class NordigenController extends BaseController
|
||||
|
||||
if (!(config('ninja.nordigen.secret_id') && config('ninja.nordigen.secret_key')))
|
||||
return view('bank.nordigen.handler', [
|
||||
'lang' => $lang,
|
||||
'company' => $company,
|
||||
'account' => $company->account,
|
||||
'failed_reason' => "account-config-invalid",
|
||||
@ -206,6 +219,7 @@ class NordigenController extends BaseController
|
||||
|
||||
if (!(Ninja::isSelfHost() || (Ninja::isHosted() && $account->isPaid() && $account->plan == 'enterprise')))
|
||||
return view('bank.nordigen.handler', [
|
||||
'lang' => $lang,
|
||||
'company' => $company,
|
||||
'account' => $company->account,
|
||||
'failed_reason' => "not-available",
|
||||
@ -219,6 +233,7 @@ class NordigenController extends BaseController
|
||||
// check validity of requisition
|
||||
if (!$requisition)
|
||||
return view('bank.nordigen.handler', [
|
||||
'lang' => $lang,
|
||||
'company' => $company,
|
||||
'account' => $company->account,
|
||||
'failed_reason' => "requisition-not-found",
|
||||
@ -226,6 +241,7 @@ class NordigenController extends BaseController
|
||||
]);
|
||||
if ($requisition["status"] != "LN")
|
||||
return view('bank.nordigen.handler', [
|
||||
'lang' => $lang,
|
||||
'company' => $company,
|
||||
'account' => $company->account,
|
||||
'failed_reason' => "requisition-invalid-status",
|
||||
@ -233,6 +249,7 @@ class NordigenController extends BaseController
|
||||
]);
|
||||
if (sizeof($requisition["accounts"]) == 0)
|
||||
return view('bank.nordigen.handler', [
|
||||
'lang' => $lang,
|
||||
'company' => $company,
|
||||
'account' => $company->account,
|
||||
'failed_reason' => "requisition-no-accounts",
|
||||
|
@ -34,6 +34,7 @@ class ConfirmNordigenBankIntegrationRequest extends Request
|
||||
{
|
||||
return [
|
||||
'ref' => 'required|string', // nordigen redirects only with the ref-property
|
||||
'lang' => 'string',
|
||||
];
|
||||
}
|
||||
}
|
||||
|
@ -38,6 +38,7 @@ class ConnectNordigenBankIntegrationRequest extends Request
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
'lang' => 'string',
|
||||
'institution_id' => 'string',
|
||||
'redirect' => 'string', // TODO: @turbo124 @todo validate, that this is a url without / at the end
|
||||
];
|
||||
|
@ -5221,6 +5221,27 @@ $lang = array(
|
||||
'charges' => 'Charges',
|
||||
'email_report' => 'Email Report',
|
||||
'payment_type_Pay Later' => 'Pay Later',
|
||||
'nordigen_handler_subtitle' => 'will gain access for your selected bank account. After selecting your institution you are redirected to theire front-page to complete the request with your account credentials.',
|
||||
'nordigen_handler_error_heading_unknown' => 'An Error has occured',
|
||||
'nordigen_handler_error_contents_unknown' => 'An unknown Error has occured! Reason:',
|
||||
'nordigen_handler_error_heading_token_invalid' => 'Invalid Token',
|
||||
'nordigen_handler_error_contents_token_invalid' => 'The provided token was invalid. Please restart the flow, with a valid one_time_token. Contact support for help, if this issue persists.',
|
||||
'nordigen_handler_error_heading_account_config_invalid' => 'Missing Credentials',
|
||||
'nordigen_handler_error_contents_account_config_invalid' => 'The provided credentials for nordigen are eighter missing or invalid. Contact support for help, if this issue persists.',
|
||||
'nordigen_handler_error_heading_not_available' => 'Not Available',
|
||||
'nordigen_handler_error_contents_not_available' => 'This flow is not available for your account. Considder upgrading to enterprise version. Contact support for help, if this issue persists.',
|
||||
'nordigen_handler_error_heading_institution_invalid' => 'Invalid Institution',
|
||||
'nordigen_handler_error_contents_institution_invalid' => 'The provided institution-id is invalid or no longer valid. You can go to the bank selection page by clicking the button below or cancel the flow by clicking on the \'X\' above.',
|
||||
'nordigen_handler_error_heading_ref_invalid' => 'Invalid Reference',
|
||||
'nordigen_handler_error_contents_ref_invalid' => 'Nordigen did not provide a valid reference. Please run flow again and contact support, if this issue persists.',
|
||||
'nordigen_handler_error_heading_not_found' => 'Invalid Requisition',
|
||||
'nordigen_handler_error_contents_not_found' => 'Nordigen did not provide a valid reference. Please run flow again and contact support, if this issue persists.',
|
||||
'nordigen_handler_error_heading_requisition_invalid_status' => 'Not Ready',
|
||||
'nordigen_handler_error_contents_requisition_invalid_status' => 'You may called this site to early. Please finish authorization and refresh this page. Contact support for help, if this issue persists.',
|
||||
'nordigen_handler_error_heading_requisition_no_accounts' => 'No Accounts selected',
|
||||
'nordigen_handler_error_contents_requisition_no_accounts' => 'The service has not returned any valid accounts. Considder restarting the flow.',
|
||||
'nordigen_handler_restart' => 'Restart flow.',
|
||||
'nordigen_handler_return' => 'Return to application.',
|
||||
);
|
||||
|
||||
return $lang;
|
||||
|
@ -25,7 +25,7 @@
|
||||
// Redirect URL that is being used when modal is being closed.
|
||||
redirectUrl: "{{ $redirectUrl }}" || new URL("", window.location.origin).href,
|
||||
// Text that will be displayed on the left side under the logo. Text is limited to 100 characters, and rest will be truncated. @turbo124 replace with a translated version like ctrans()
|
||||
text: "{{ ($account ?? false) && !$account->isPaid() ? 'Invoice Ninja' : (isset($company) && !is_null($company) ? $company->name : 'Invoice Ninja') }} will gain access for your selected bank account. After selecting your institution you are redirected to theire front-page to complete the request with your account credentials.",
|
||||
text: "{{ ($account ?? false) && !$account->isPaid() ? 'Invoice Ninja' : (isset($company) && !is_null($company) ? $company->name : 'Invoice Ninja') }} {{ ctrans('texts.nordigen_handler_subtitle', [], $lang ?? 'en') }}",
|
||||
// Logo URL that will be shown below the modal form.
|
||||
logoUrl: "{{ ($account ?? false) && !$account->isPaid() ? asset('images/invoiceninja-black-logo-2.png') : (isset($company) && !is_null($company) ? $company->present()->logo() : asset('images/invoiceninja-black-logo-2.png')) }}",
|
||||
// Will display country list with corresponding institutions. When `countryFilter` is set to `false`, only list of institutions will be shown.
|
||||
@ -79,58 +79,57 @@
|
||||
contents.style["opacity"] = "80%";
|
||||
|
||||
let restartFlow = false; // return, restart, refresh
|
||||
heading.innerHTML = "An Error has occured";
|
||||
contents.innerHTML = "An unknown Error has occured! Reason: " + failedReason;
|
||||
heading.innerHTML = "{{ ctrans('texts.nordigen_handler_error_heading_unknown', [], $lang ?? 'en') }}";
|
||||
contents.innerHTML = "{{ ctrans('texts.nordigen_handler_error_contents_unknown', [], $lang ?? 'en') }} " + failedReason;
|
||||
switch (failedReason) {
|
||||
// Connect Screen Errors
|
||||
case "token-invalid":
|
||||
heading.innerHTML = "Invalid Token";
|
||||
contents.innerHTML = "The provided token was invalid. Please restart the flow, with a valid one_time_token. Contact support for help, if this issue persists.";
|
||||
heading.innerHTML = "{{ ctrans('texts.nordigen_handler_error_heading_token_invalid', [], $lang ?? 'en') }}";
|
||||
contents.innerHTML = "{{ ctrans('texts.nordigen_handler_error_contents_token_invalid', [], $lang ?? 'en') }}";
|
||||
break;
|
||||
case "account-config-invalid":
|
||||
heading.innerHTML = "Missing Credentials";
|
||||
contents.innerHTML = "The provided credentials for nordigen are eighter missing or invalid. Contact support for help, if this issue persists.";
|
||||
heading.innerHTML = "{{ ctrans('texts.nordigen_handler_error_heading_account_config_invalid', [], $lang ?? 'en') }}";
|
||||
contents.innerHTML = "{{ ctrans('texts.nordigen_handler_error_contents_account_config_invalid', [], $lang ?? 'en') }}";
|
||||
break;
|
||||
case "not-available":
|
||||
heading.innerHTML = "Not Available";
|
||||
contents.innerHTML = "This flow is not available for your account. Considder upgrading to enterprise version. Contact support for help, if this issue persists.";
|
||||
heading.innerHTML = "{{ ctrans('texts.nordigen_handler_error_heading_not_available', [], $lang ?? 'en') }}";
|
||||
contents.innerHTML = "{{ ctrans('texts.nordigen_handler_error_contents_not_available', [], $lang ?? 'en') }}";
|
||||
break;
|
||||
case "institution-invalid":
|
||||
restartFlow = true;
|
||||
heading.innerHTML = "Invalid Institution";
|
||||
contents.innerHTML = "The provided institution-id is invalid or no longer valid. You can go to the bank selection page by clicking the button below or cancel the flow by clicking on the 'X' above.";
|
||||
heading.innerHTML = "{{ ctrans('texts.nordigen_handler_error_heading_institution_invalid', [], $lang ?? 'en') }}";
|
||||
contents.innerHTML = "{{ ctrans('texts.nordigen_handler_error_contents_institution_invalid', [], $lang ?? 'en') }}";
|
||||
break;
|
||||
// Confirm Screen Errors
|
||||
case "ref-invalid":
|
||||
heading.innerHTML = "Invalid Reference";
|
||||
contents.innerHTML = "Nordigen did not provide a valid reference. Please run flow again and contact support, if this issue persists.";
|
||||
heading.innerHTML = "{{ ctrans('texts.nordigen_handler_error_heading_ref_invalid', [], $lang ?? 'en') }}";
|
||||
contents.innerHTML = "{{ ctrans('texts.nordigen_handler_error_contents_ref_invalid', [], $lang ?? 'en') }}";
|
||||
break;
|
||||
case "requisition-not-found":
|
||||
heading.innerHTML = "Invalid Requisition";
|
||||
contents.innerHTML = "Nordigen did not provide a valid reference. Please run flow again and contact support, if this issue persists.";
|
||||
heading.innerHTML = "{{ ctrans('texts.nordigen_handler_error_heading_not_found', [], $lang ?? 'en') }}";
|
||||
contents.innerHTML = "{{ ctrans('texts.nordigen_handler_error_contents_not_found', [], $lang ?? 'en') }}";
|
||||
break;
|
||||
case "requisition-invalid-status":
|
||||
heading.innerHTML = "Not Ready";
|
||||
contents.innerHTML = "You may called this site to early. Please finish authorization and refresh this page. Contact support for help, if this issue persists.";
|
||||
heading.innerHTML = "{{ ctrans('texts.nordigen_handler_error_heading_requisition_invalid_status') }}";
|
||||
contents.innerHTML = "{{ ctrans('texts.nordigen_handler_error_contents_requisition_invalid_status', [], $lang ?? 'en') }}";
|
||||
break;
|
||||
case "requisition-no-accounts":
|
||||
heading.innerHTML = "No Accounts selected";
|
||||
contents.innerHTML = "The service has not returned any valid accounts. Considder restarting the flow.";
|
||||
heading.innerHTML = "{{ ctrans('texts.nordigen_handler_error_heading_requisition_no_accounts', [], $lang ?? 'en') }}";
|
||||
contents.innerHTML = "{{ ctrans('texts.nordigen_handler_error_contents_requisition_no_accounts', [], $lang ?? 'en') }}";
|
||||
break;
|
||||
case "unknown":
|
||||
break;
|
||||
default:
|
||||
console.warn('Invalid or missing failed_reason code: ' + failedReason);
|
||||
break;
|
||||
|
||||
}
|
||||
wrapper.appendChild(contents);
|
||||
|
||||
const restartUrl = new URL(window.location.pathname, window.location.origin); // no searchParams
|
||||
const returnButton = document.createElement('div');
|
||||
returnButton.className = "mt-4";
|
||||
returnButton.innerHTML = `<a class="button button-primary bg-blue-600 my-4" href="${restartFlow ? restartUrl.href : config.redirectUrl}">${restartFlow ? 'Restart flow.' : 'Return to application.'}</a>`
|
||||
wrapper.appendChild(returnButton);
|
||||
returnButton.innerHTML = `<a class="button button-primary bg-blue-600 my-4" href="${restartFlow ? restartUrl.href : config.redirectUrl}">${restartFlow ? "{{ ctrans('texts.nordigen_handler_restart', [], $lang ?? 'en') }}" : "{{ ctrans('texts.nordigen_handler_return', [], $lang ?? 'en') }}"}</a>`
|
||||
wrapper.ald(returnButton);
|
||||
}
|
||||
|
||||
</script>
|
||||
|
Loading…
x
Reference in New Issue
Block a user