guoziyun 1 год назад
Родитель
Сommit
67425e8b6c
4 измененных файлов с 59 добавлено и 50 удалено
  1. 1 0
      config/meta.js
  2. 34 44
      config/tag.js
  3. 18 0
      config/translate.js
  4. 6 6
      routes/index.js

+ 1 - 0
config/meta.js

@@ -228,6 +228,7 @@ let videosDescription = {
 
 
 
+
 let meta = {
   homePageTile,
   homePageDescription,

+ 34 - 44
config/tag.js

@@ -3948,51 +3948,8 @@ let tags = [
 
 // tags.forEach(e => e.color = getRandomDarkColor());
 
-// let tagSeoMap = {};
 
-// async function getTagSeoTitle(tag, lang) {
-//   let item = tagSeoMap[tag];
-//   if (!item) {
-//     let doc = await models.TagSeo.findOne({ tag }).lean();
-//     if (doc) {
-//       try {
-//         doc.seoTitle = JSON.parse(doc.seoTitle);
-//         doc.seoDescription = JSON.parse(doc.seoDescription);
-//         tagSeoMap[tag] = doc;
-//         item = doc;
-//       } catch (e) {
-//         console.error(e.message);
-//       }
-//     }
-//   }
-//   if (item) {
-//     return tagSeoMap[tag].seoTitle[lang];
-//   } else {
-//     return `${tag} coloring pages | ${translate.printableColoringPage[lang]}`;
-//   }
-// }
 
-// async function getTagSeoDescription(tag, lang) {
-//   let item = tagSeoMap[tag];
-//   if (!item) {
-//     let doc = await models.TagSeo.findOne({ tag }).lean();
-//     if (doc) {
-//       try {
-//         doc.seoTitle = JSON.parse(doc.seoTitle);
-//         doc.seoDescription = JSON.parse(doc.seoDescription);
-//         tagSeoMap[tag] = doc;
-//         item = doc;
-//       } catch (e) {
-//         console.error(e.message);
-//       }
-//     }
-//   }
-//   if (item) {
-//     return tagSeoMap[tag].seoDescription[lang];
-//   } else {
-//     return meta.tagDescription[lang];
-//   }
-// }
 
 const tagsHashMap = tags.reduce((acc, obj) => {
   acc[obj.tag] = obj;
@@ -4000,6 +3957,39 @@ const tagsHashMap = tags.reduce((acc, obj) => {
 }, {});
 
 
+function getTagSeoTitle(tag, lang) {
+  let item = tagsHashMap[tag];
+  if (item) {
+    // return tagsHashMap[tag]['seoTitle'][lang];
+    return `${tagsHashMap[tag]['title'][lang]} ${translate.coloringPages[lang]} ${translate.freePrintablePaint[lang]}`;  // 用统一的吧
+  }
+
+  let uppercaseTag = tag.charAt(0).toUpperCase() + tag.slice(1);
+
+  return `${uppercaseTag} ${translate.coloringPages.en} ${translate.freePrintablePaint.en}`;
+}
+
+function getTagSeoDescription(tag, lang) {
+  let item = tagsHashMap[tag];
+  if (item) {
+    return tagsHashMap[tag]['seoDescription'][lang];
+  }
+
+  let uppercaseTag = tag.charAt(0).toUpperCase() + tag.slice(1);
+  return `${uppercaseTag} ${translate.coloringPages[lang]}, ${translate.commonDescription[lang]}`;
+}
+
+function getTagH1Title(tag, lang) {
+  let item = tagsHashMap[tag];
+  if (item) {
+    return `${tagsHashMap[tag]['title'][lang]} ${translate.coloringPages[lang]}`;  // 用统一的吧
+  }
+
+  let uppercaseTag = tag.charAt(0).toUpperCase() + tag.slice(1);
+  return `${uppercaseTag} ${translate.coloringPages.en}`;
+}
+
+
 // 刷新tag作品数量
 async function refreshTagCount() {
   let allTags = await models.Art.aggregate([
@@ -4026,4 +4016,4 @@ async function refreshTagCount() {
 
 refreshTagCount();
 
-module.exports = { tags, tagsHashMap, refreshTagCount };
+module.exports = { tags, tagsHashMap, refreshTagCount, getTagSeoTitle, getTagSeoDescription, getTagH1Title };

+ 18 - 0
config/translate.js

@@ -14,6 +14,22 @@ let printableColoringPage = {
   ja: '無料で印刷できる着色ページ',
 }
 
+let freePrintablePaint = {
+  zh: "| 免费 | 可打印 | 在线涂色",
+  en: "| Free | Printable | Paint Online",
+  es: "| Gratis | Imprimibles | Colorear en Línea",
+  pt: "| Grátis | Impressas | Colorir Online",
+  ja: "| 無料 | 印刷可能 | オンラインで塗る"
+}
+
+let commonDescription = {
+  zh: "每日更新,自由填色,可免费下载打印,可以在线填色,支持填色APP,任何地点任何时间都可以享受填色带来的乐趣",
+  en: "Updated daily, free coloring, free download and print, online coloring available, coloring app support, enjoy the fun of coloring anytime, anywhere",
+  es: "Actualizado diariamente, coloreado libre, descarga e impresión gratuitas, coloreado en línea disponible, soporte de aplicaciones de coloreado, disfruta de la diversión de colorear en cualquier momento y lugar.",
+  pt: "Atualizado diariamente, coloração livre, download e impressão gratuitos, coloração online disponível, suporte para aplicativos de coloração, aproveite a diversão de colorir a qualquer hora e em qualquer lugar.",
+  ja: "毎日更新、自由な塗り絵、無料ダウンロードと印刷、オンライン塗り絵利用可能、塗り絵アプリサポート、いつでもどこでも塗り絵の楽しさをお楽しみください。"
+}
+
 let introTitle = {
   zh: '打造全球最好的填色页网站',
   en: 'Build The Best Coloring Pages Website In The World',
@@ -577,6 +593,8 @@ let translate = {
   coloringPages,
   printableColoringPage,
   homePage,
+  freePrintablePaint,
+  commonDescription,
   introTitle,
   introText,
   videoPage,

+ 6 - 6
routes/index.js

@@ -4,7 +4,7 @@ const models = require('../models');
 const config = require('../config/app');
 const redis = require('../libs/redis');
 const categories = require('../config/category');
-const { tags, tagsHashMap } = require('../config/tag');
+const { tags, tagsHashMap, getTagSeoTitle, getTagSeoDescription, getTagH1Title } = require('../config/tag');
 const languages = require('../config/language');
 const translate = require('../config/translate');
 const meta = require('../config/meta');
@@ -301,8 +301,8 @@ router.get('/:lang/category/:tag?', function (req, res, next) {
       let cateName = cate ? cate[lang] : null;
       let h1title = cateName ? `${cateName} ${translate.coloringPages[lang]}` : meta.categoryTitle[lang];
 
-      let title = tag == 'latest' ? meta.categoryTitle[lang] : tagsHashMap[tag]['seoTitle'][lang];
-      let description = tag == 'latest' ? meta.categoryDescription[lang] : tagsHashMap[tag]['seoDescription'][lang];
+      let title = tag == 'latest' ? meta.categoryTitle[lang] : getTagSeoTitle(tag, lang);
+      let description = tag == 'latest' ? meta.categoryDescription[lang] : getTagSeoDescription(tag, lang);
 
       let data = {
         title,
@@ -380,9 +380,9 @@ router.get('/:lang/tag/:tag?', function (req, res, next) {
       organizeData(result.data, lang, imageType);
 
 
-      let title = tag == 'latest' ? meta.tagTitle[lang] : tagsHashMap[tag]['seoTitle'][lang];
-      let description = tag == 'latest' ? meta.tagDescription[lang] : tagsHashMap[tag]['seoDescription'][lang];
-      let h1title = tag == 'latest' ? translate.selectTag[lang] : `${tagsHashMap[tag]['title'][lang]} ${translate.coloringPages[lang]}`;
+      let title = tag == 'latest' ? meta.tagTitle[lang] : getTagSeoTitle(tag, lang);
+      let description = tag == 'latest' ? meta.tagDescription[lang] : getTagSeoDescription(tag, lang);
+      let h1title = tag == 'latest' ? translate.selectTag[lang] : getTagH1Title(tag, lang);
 
       let data = {
         title,