lang.js 806 B

1234567891011121314151617181920212223242526272829
  1. const languages = require('../../config/language');
  2. const createError = require('http-errors');
  3. const ObjectId = require('mongoose').Types.ObjectId;
  4. /**
  5. * 根据http的Accept-Language返回locale
  6. * 有支持中文的则返回zh,其他一律返回en
  7. * @param {*} clientLocales
  8. */
  9. function getLocale(clientLocales) {
  10. if (!clientLocales) return 'en'; // 识别不到客户端的locale,则返回默认中文
  11. let langs = languages.map(e => e.code);
  12. for (let lang of langs) {
  13. if (clientLocales[0].includes(lang)) return lang;
  14. }
  15. return 'en'; // 客户端locale没有中文这一项,那么用英文
  16. }
  17. function ensureLanguage(lang) {
  18. let langs = languages.map(e => e.code);
  19. if (langs.includes(lang)) return lang;
  20. return 'en';
  21. }
  22. module.exports = {
  23. getLocale, ensureLanguage,
  24. }