
Research
Two Malicious Rust Crates Impersonate Popular Logger to Steal Wallet Keys
Socket uncovers malicious Rust crates impersonating fast_log to steal Solana and Ethereum wallet keys from source code.
ember-i18n-cp-validations
Advanced tools
Adds support for ember-i18n in ember-cp-validations
Using ember-intl? See: jasonmit/ember-intl-cp-validations
ember install ember-i18n-cp-validations
app/validators/messages.js
you'll want to change the import reference from: ember-cp-validations/validators/messages
to ember-i18n-cp-validations/validators/message
Implement the following validation messages across your translations:
// app/locales/en/translations.js
export default {
errors: {
description: "This field",
inclusion: "{{description}} is not included in the list",
exclusion: "{{description}} is reserved",
invalid: "{{description}} is invalid",
confirmation: "{{description}} doesn't match {{on}}",
accepted: "{{description}} must be accepted",
empty: "{{description}} can't be empty",
blank: "{{description}} can't be blank",
present: "{{description}} must be blank",
collection: "{{description}} must be a collection",
singular: "{{description}} can't be a collection",
tooLong: "{{description}} is too long (maximum is {{max}} characters)",
tooShort: "{{description}} is too short (minimum is {{min}} characters)",
before: "{{description}} must be before {{before}}",
after: "{{description}} must be after {{after}}",
wrongDateFormat: "{{description}} must be in the format of {{format}}",
wrongLength: "{{description}} is the wrong length (should be {{is}} characters)",
notANumber: "{{description}} must be a number",
notAnInteger: "{{description}} must be an integer",
greaterThan: "{{description}} must be greater than {{gt}}",
greaterThanOrEqualTo: "{{description}} must be greater than or equal to {{gte}}",
equalTo: "{{description}} must be equal to {{is}}",
lessThan: "{{description}} must be less than {{lt}}",
lessThanOrEqualTo: "{{description}} must be less than or equal to {{lte}}",
otherThan: "{{description}} must be other than {{value}}",
odd: "{{description}} must be odd",
even: "{{description}} must be even",
positive: "{{description}} must be positive",
date: "{{description}} must be a valid date",
onOrAfter: '{{description}} must be on or after {{onOrAfter}}',
onOrBefore: '{{description}} must be on or before {{onOrBefore}}',
email: "{{description}} must be a valid email address",
phone: "{{description}} must be a valid phone number",
url: "{{description}} must be a valid url"
}
};
To change the errors prefix key from errors
to any other key, such as validationErrors
you simply add the following to app/validators/messages.js
. Now just amend your translation files to be nested under the validationErrors
object instead of errors
.
// app/validators/messages.js
import ValidatorsMessages from 'ember-i18n-cp-validations/validators/messages';
export default ValidatorsMessages.extend({
prefix: 'validationErrors'
});
To translate the description of a Validator specify the descriptionKey
to match a key in your translations.
// app/models/user.js
import { validator, buildValidations } from 'ember-cp-validations';
const Validations = buildValidations({
username: validator('presence', {
presence: true,
descriptionKey: 'key.for.username'
})
});
// app/locales/en/translations.js
export default {
key: {
for: {
username: 'Username'
}
}
}
// app/locales/sv/translations.js
export default {
key: {
for: {
username: 'Användarnamn'
}
}
}
By default, translations will be resolved to validatorPrefix.validatorType
. If you need to override this functionality entirely and specify your own message key, you can do so with messageKey
on the validator object.
// app/models/user.js
import { validator, buildValidations } from 'ember-cp-validations';
const Validations = buildValidations({
username: validator('presence', {
presence: true,
messageKey: 'username.missing'
})
});
Passing attributes into your translation is supported.
Similar to passing attributes via through to the t
method: i.e., i18n.t('errors.blank', { placeholder: i18n.t('age') })
you can also do this with your validator definition.
validator('presence', {
presence: true,
placeholder: Ember.computed('model.age', 'model.i18n.locale', {
// inject i18n into your model, optional..
return get(model, 'i18n').t('age');
})
})
errors: {
blank: '{{placeholder}} cannot be blank!'
}
To suppress console warnings for missing translations, you can do so by setting i18n.suppressWarnings
in config/environment
;
// config/environment.js
module.exports = function(environment) {
const ENV = {};
if (environment === 'test') {
ENV.i18n = ENV.i18n || {};
ENV.i18n.suppressWarnings = true;
}
return ENV;
}
Please open a GitHub an issue.
ember server
ember test
ember test --server
ember build
For more information on using ember-cli, visit http://www.ember-cli.com/.
FAQs
ember-i18n support for ember-cp-validations
We found that ember-i18n-cp-validations demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Socket uncovers malicious Rust crates impersonating fast_log to steal Solana and Ethereum wallet keys from source code.
Research
A malicious package uses a QR code as steganography in an innovative technique.
Research
/Security News
Socket identified 80 fake candidates targeting engineering roles, including suspected North Korean operators, exposing the new reality of hiring as a security function.