Changeset 3492016
- Timestamp:
- 03/26/2026 05:10:59 PM (2 days ago)
- File:
-
- 1 edited
-
gptranslate/trunk/serverside-translations.php (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
gptranslate/trunk/serverside-translations.php
r3474048 r3492016 354 354 // Translate <meta name="description" content="..."> 355 355 $html = preg_replace_callback( 356 '~<meta\s+(?:name|property)=["\'](?:description|og:description|twitter:description )["\']\s+content=["\'](.*?)["\'][^>]*>~i',356 '~<meta\s+(?:name|property)=["\'](?:description|og:description|twitter:description|dc\.description)["\']\s+content=["\'](.*?)["\'][^>]*>~i', 357 357 function ($matches) use ($altTranslations, $caseInsensitive, $matchQuotes) { 358 358 $originalTag = $matches[0]; … … 392 392 if (preg_match('~<title[^>]*>(.*?)</title>~is', $html, $titleMatch)) { 393 393 $translatedTitle = trim(strip_tags($titleMatch[1])); 394 394 395 395 // Step 2: Replace og:title content directly 396 396 $html = preg_replace( … … 399 399 $html 400 400 ); 401 401 402 402 // Step 3: Replace twitter:title content with the same translated title 403 403 $html = preg_replace( 404 404 '~(<meta\s+name=["\']twitter:title["\']\s+content=["\']).*?(["\'][^>]*>)~i', 405 '$1' . htmlspecialchars($translatedTitle, ENT_QUOTES, 'UTF-8') . '$2', 406 $html 407 ); 408 409 // Step 4: Replace Dublin Core (SEOPress) dc.title content with the same translated title 410 $html = preg_replace( 411 '~(<meta\s+name=["\']dc\.title["\']\s+content=["\']).*?(["\'][^>]*>)~i', 405 412 '$1' . htmlspecialchars($translatedTitle, ENT_QUOTES, 'UTF-8') . '$2', 406 413 $html … … 969 976 } 970 977 971 // Translate meta descriptions (standard, Open Graph, Twitter )978 // Translate meta descriptions (standard, Open Graph, Twitter, Dublin Core) 972 979 $metaDescriptions = $xpath->query( 973 980 '//meta[ … … 975 982 or (@name="twitter:description") 976 983 or (@property="og:description") 984 or (@name="dc.description") 977 985 ]' 978 986 ); … … 1015 1023 foreach ($twitterTitleNodes as $twitterTitleNode) { 1016 1024 $twitterTitleNode->setAttribute('content', trim($translatedTitle)); 1025 } 1026 1027 // Set Dublin Core (SEOPress) dc:title with the same value as <title> 1028 $dcTitleNodes = $xpath->query('//meta[@name="dc.title"]'); 1029 foreach ($dcTitleNodes as $dcTitleNode) { 1030 $dcTitleNode->setAttribute('content', trim($translatedTitle)); 1017 1031 } 1018 1032 } … … 1423 1437 1424 1438 // Translate <meta name="description"> 1425 foreach ($htmlObj->find('meta[name=description], meta[name=twitter:description], meta[property=og:description] ') as $metaNode) {1439 foreach ($htmlObj->find('meta[name=description], meta[name=twitter:description], meta[property=og:description], meta[name=dc.description]') as $metaNode) { 1426 1440 $contentValue = $metaNode->content; 1427 1441 … … 1473 1487 // Set twitter:title with the same value as <title> 1474 1488 $metaTwitterTitleNode->content = trim($translatedTitle); 1489 } 1490 } 1491 1492 // Translate <meta name="dc:title"> (Dublin Core - SEOPress) with the same value as <title> tag 1493 foreach ($htmlObj->find('meta[name=dc.title]') as $metaDcTitleNode) { 1494 // Find the <title> tag to get the translated title 1495 $titleNode = $htmlObj->find('title', 0); 1496 1497 if ($titleNode) { 1498 // Get the translated title text 1499 $translatedTitle = $titleNode->plaintext; 1500 1501 // Set dc:title with the same value as <title> 1502 $metaDcTitleNode->content = trim($translatedTitle); 1475 1503 } 1476 1504 }
Note: See TracChangeset
for help on using the changeset viewer.