টেমপ্লেটগুলি থেকে প্রদর্শিত সমস্ত পৃষ্ঠায় অনুবাদযোগ্য স্ট্রিংগুলি কীভাবে তৈরি করবেন?


14

t()* .Tpl.php ফাইলগুলিতে আমার কিছু কল রয়েছে । উদাহরণস্বরূপ, ধরা যাক আমি পণ্য এবং product.tpl.php ফাইল সম্পর্কে কথা বলছি।

টেম্পলেটগুলির স্ট্রিংগুলি প্রথমবার ব্যবহার করা না হওয়া পর্যন্ত সনাক্ত করা যায় না। সে সম্পর্কে দ্রুপাল.আর.জে একটি থ্রেড ছিল এবং আমি এটি সঠিক বলে মনে করি। দুঃখের বিষয়, আমি যদি যাই, তবে বলি, http://example.com/pl/product/200 , তারপরে সেই স্ট্রিংটি ক্ষেত্রের সাথে সেট করে {locales_source}টেবিলে সংরক্ষণ করা হবে ।location/pl/product/200

আমার ব্যবহারকারীদের স্থানীয়করণ ক্লায়েন্টের মডিউলটির অন-সাইট অনুবাদ সরঞ্জামটি ব্যবহার করে অনুবাদ করতে সক্ষম হওয়া দরকার , যাতে তারা যথাযথ প্রসঙ্গে থাকায় তারা আসলে কী অনুবাদ করছে তা দেখতে পারে। উত্সের অবস্থানটিতে সেট করা থাকলে /pl/product/200, আইডি 200 সহ পণ্যটি কেবলমাত্র এটির উপর স্ট্রিংটি অনুবাদ করা দেখানো হয়। আরও খারাপ, আমি যদি ব্যবহারকারীদের সেই নির্দিষ্ট পণ্যটিতে অনুবাদ করতে বাধ্য করতে পারি তবে আমার প্রয়োজন তাদের রাশিয়ান ভাষায় অনুবাদ করতেও সক্ষম, এবং অবস্থান নির্ধারণের সাথে কোনও পণ্য নেই /ru/product/PID

L10n_client সরঞ্জামে সমস্ত পণ্য, সমস্ত ভাষায় সমস্ত স্ট্রিং দৃশ্যমান করার জন্য কি ডাটাবেসে অবস্থানের স্ট্রিংকে পুনরায় ফর্ম্যাট করার কোনও উপায় আছে?

আমি এটি সেট করার চেষ্টা করেছি:

  • ; sites/default/themes/mytheme/product.tpl.php,
  • sites/default/themes/mytheme/product.tpl.php,
  • sites/default/modules/mymodule/mymodule.module (মডিউল যা থিমযুক্ত ডেটা উত্পন্ন করে)

তবে এটি কেবল অনুবাদ সরঞ্জামের জন্য তাদের অদৃশ্য করে তুলেছে।

আমি নিশ্চিত যে এটি স্থানীয়করণ ক্লায়েন্টে কোনও বাগ নয় , এটি স্ট্রিংটি যেখানে দেখা গেছে সেখানে এটি দেখায়। এবং মনে হয় এটি দ্রুপাল 7 অনুবাদ ব্যবস্থার জন্যও "এটি ঠিকভাবে কাজ করে" ইতিমধ্যে আলোচনা করা হয়েছিল এবং রিপোর্ট করা হয়েছিল এবং কিছুই পরিবর্তন হয়নি। সুতরাং এটি কোনও বাগের প্রতিবেদন নয়, আমি কীভাবে আমাদের কাজ করতে হয় তার সাথে কীভাবে কাজ করব তা জিজ্ঞাসা করি।


আমি পাঠ্যগুলি নিয়ে কথা বলছি যা চালিত ডেটা মডিউলটির সাথে কোনও সম্পর্ক নেইআমি পণ্যগুলি অনুবাদ করতে চাই না, কেবলমাত্র টেম্পলেট স্ট্রিংগুলির সাথে পণ্যটির নিজস্ব কোনও সম্পর্ক নেই, যেমন পূর্ববর্তী - পরবর্তী পণ্য চিত্র গ্যালারী টেমপ্লেটে।

উদাহরণস্বরূপ, মডিউল 15 টি থাম্বনেইল দেয় এবং একবার 5 বার দেখানো থিমের কাজ। এবং পূর্ববর্তী / পরবর্তী লিঙ্কগুলির প্রয়োজন altএবং titleবৈশিষ্ট্য। অনুবাদিত। তবে আমার মডিউলটি তা জানে না। এবং কখনও প্রয়োজন হয় না।


আমি নিশ্চিত না আপনি কী চান তা আমি পুরোপুরি বুঝতে পেরেছি, তবে সাইটটি সমস্ত ভাষায় ক্রলিং যথেষ্ট হবে? আপনি যেমন ব্যবহার করতে পারে। xmlsitemap একাধিক ভাষায় লিঙ্কগুলি তৈরি করতে এবং তারপরে wgetবা যা কিছু ব্যবহার করুন । হ্যাকিশ, তবে আপনি বলেছিলেন যে এটি অনুমোদিত হয়েছিল (:
অ্যান্ডি

@ অ্যান্ডি লোকালাইজেশন ক্লায়েন্ট ব্যবহারকারীদের পৃষ্ঠার নীচে একটি বার খুলতে এবং সেই পৃষ্ঠাগুলিতে সরাসরি প্রদর্শিত পাঠ্যগুলি যখন সেগুলি দেখবে তখন অনুবাদ করতে দেয়। আমি সমস্ত লেখাগুলি ঠিকঠাক রফতানি করতে পারি, তবে এটি ঠিক এটি নয়।
Mołot

1
আমি drupal_set_message () এবং dpm () থেকে মনে রেখেছি যে এই বার্তাগুলি পরবর্তী অনুরোধের জন্য সারি করা হবে, যদি পেজ.tpl.php থেকে ডাকা হয়। এটি কারণ বার্তাগুলি প্রক্রিয়া করার পরে টেমপ্লেটগুলি সাধারণত একটি অনুরোধে বেশ দেরিতে প্রক্রিয়াজাত হয়। টি () এবং স্থানীয়করণ ক্লায়েন্টের ক্ষেত্রেও এরকম কিছু হতে পারে।
ডনকুইক্সোট

দুর্দান্ত প্রশ্ন। চমৎকার সমস্যা।
অপেশাদার বারিস্তা

কেবলমাত্র একটি পরামর্শ ... আপনি যদি চান যে আপনার ব্যবহারকারীরা যে কোনও সময়ে আপনার টিপিএল টি () স্ট্রিংগুলিকে যে কোনও ভাষায় অনুবাদ করতে সক্ষম হন তবে আপনি অনুবাদগুলি টেম্পলেট এক্সট্রাক্টর ( drupal.org/project/potx ) এর সাহায্যে এই স্ট্রিংগুলি বের করতে এবং সেগুলি দিতে পারেন আসল .po, যে তারা কোনও সরঞ্জাম যেমন পোয়েডিটের সাথে অনুবাদ করতে পারে? ( poedit.net )। আপনি কিছু স্ট্যাটিক হিসাবে এই স্ট্রিংগুলি উপস্থাপন করার সাথে সাথে, কাজটি প্রতিটি অনুবাদক এক সাথে কাজটি করতেন ...
কোজো

উত্তর:


5

আপনার প্রয়োজনীয়তা: একটি প্রমাণীকৃত ব্যবহারকারী হিসাবে
আমার সাইট একাধিক ভাষায় কাজ করার জন্য আমাকে টি () ফাংশন দিয়ে সম্পন্ন আমার সাইটের কোডবেজে পাওয়া যে কোনও এবং সমস্ত অনুবাদ কল একবারে অনুবাদ করতে সক্ষম হতে হবে।

আপনি কি চাইছেন সেই প্রয়োজনীয়তার বিবরণটি কি খুব কাছে?


ক্রোলের্স

যেমন কেউ বলেছিল - কোনও ক্রলার তাত্ত্বিকভাবে পুরো সাইটটি সমস্ত টি () কলগুলির নিবন্ধীকরণের জন্য বাধ্য করতে পারে। তবে 1) ক্রোলার জানেন না যে কোন পৃষ্ঠাগুলিতে হামাগুড়ি দিতে হবে; 2) আমরা ক্রল করার জন্য পৃষ্ঠাগুলির একটি তালিকা বজায় রাখতে চাইছি না; 3) আমরা কোনও ক্রলার, পিরিয়ড ব্যবহার করতে চাই না। Eww। শুধু, eww। রাইট?


সমস্যাটি

  1. আমাদের কাছে সমস্ত অনুবাদ স্ট্রিংয়ের একটি তালিকা নেই।
  2. দ্রুপাল / পিএইচপি একটি গতিময় ভাষা যা সি সংকলিত হয় unlike সুতরাং আমরা যেতে পারি না এবং উদাহরণস্বরূপ বলতে পারি না: এই পুরো কোডবেসটি সংকলন করুন, তারপরে আমাকে এই ফাংশনটির সমস্ত দৃষ্টান্ত সন্ধান করুন t(), তারপরে সেই উদাহরণগুলিকে ডাটাবেসে নিবন্ধন করুন, তারপরে সেই সমস্ত নিবন্ধিত দৃষ্টান্তগুলি একবারে অনুবাদ করুন t()। আমি আমাদের টেবিলে একটি বিকল্প বলে মনে করি না।
  3. একটি স্থিতিশীল কোড বিশ্লেষণ সরঞ্জাম একই কারণে একজন ক্রলার নিঃস্ব হবে। আমি t()এই ফাইলটিতে এটি খুঁজে পেয়েছি । গ্রেট! এটি কোন ইউআরএল ব্যবহার করা হয়? প্রসঙ্গটি কী?

বর্তমান সরঞ্জামগুলি (দ্রুপাল এবং কিছু অবদানকারী মডিউল) এবং বর্তমান সীমাবদ্ধতাগুলির সাথে (রিয়েল-টাইম থিম কলগুলি -> টেমপ্লেট ফাইলগুলি -> t()কলগুলির উপর নির্ভর করে) সমস্যাটি আক্রমণ করা এখানে অল-এক্সিটের মতো দেখাচ্ছে। আমাদের বাক্স থেকে কিছুটা ভাবতে হবে।


আমাদের কি দরকার

  1. আমাদের একটি ডেটা সোর্স, একটি মডেল দরকার যা আমাদের জানায় যে আমাদের বর্তমান অনুবাদ স্ট্রিংগুলি কী এবং তাদের প্রসঙ্গ কী -
  2. প্র্যাকটিভ ডেটা মডেল। বর্তমান ডেটা মডেলটি প্রতিক্রিয়াশীল (যখনই কল আসবে তখন মডেলটি আপডেট t()হয়)। আমাদের একটি প্র্যাকটিভ ডেটা মডেল দরকার - একটি যাতে অ্যাপ্লিকেশনটি t()গ্রাহক দ্বারা প্রকৃতরূপে মৃত্যুদন্ড কার্যকর করার আগে উদাহরণগুলির সন্ধানের যত্ন নেয় ।
  3. আমাদের প্রসঙ্গ দরকার। t()একা এটি কেটে দেয় না - কারণ - আমরা জানি না যে আমরা 'ফু' অনুবাদ করছি, তবে যে টার্গেট ল্যাঙ্গুয়েজটি আমরা অনুবাদ করছি তার URL এর উপর নির্ভর করে যেটি ঘটেছিল t()। এমনকি যদি আমরা t()কলটিতে লক্ষ্য ভাষাটি হার্ডকোড করতে পারি তবে বলুন, একটি র‌্যাপার কল ব্যবহার করে এটি আপনার উদ্দেশ্যে কাজ করবে না।

আমি কয়েকটি সরঞ্জাম সনাক্ত করেছি যা আমাদের কাছে থাকলে - আমাদের সমস্যাটিকে সহায়তা করবে। এই সরঞ্জামগুলির সাহায্যে আমরা ডেটা মডেলটিতে যেতে পারি এবং বলতে পারি: যে সমস্ত স্ট্রিং জড়িয়ে আছে তা আমাকে t()এখনও দেবে না যা এখনও পপুলেশিত হয়নি। এখন এই অনুবাদগুলি সন্নিবেশ করান। ধন্যবাদ.

এবং পরের বার যখন গ্রাহক আসবেন, অনুবাদগুলি সেখানে রয়েছে।

আমরা কীভাবে ... এই সরঞ্জামগুলি তৈরি করব?


সীমাবদ্ধতাসমূহ

  1. লক্ষ্য ভাষাটি টেমপ্লেটে থাকতে পারে না, এটি ইউআরএল দ্বারা সিদ্ধান্ত নেওয়া হয়। স্ট্রিং ধরে নিলে অবশ্যই যে কোনও ভাষা সমর্থন করবে।
  2. অনুবাদকৃত স্ট্রিংটি টেমপ্লেটে থাকতে পারে না। অনুবাদটি একটি ডাটাবেসে থাকবে।

এখন যেহেতু আমি সমস্যাটিকে আরও চিন্তাভাবনা দিয়েছি এবং কয়েকটি চ্যালেঞ্জ এবং সীমাবদ্ধতাগুলি চিহ্নিত করেছি, আমি সেখানে উপলভ্য যে কোনও সমাধানের দিকে তাকানোর বিষয়ে বা কোনও কাস্টম সমাধান তৈরি করার বিষয়ে ভাবতে পারি।

সমাধান মস্তিষ্ক

আমার এমন কিছু দরকার যা "সবকিছু" একসাথে বাঁধে। কি সম্পর্কে ... একটি সত্তা?

  • কোনও সত্তা সেই পণ্যটি ধরে রাখতে পারে যা অনুবাদ করা দরকার।
  • সংস্থাগুলি যে পণ্যটির অনুবাদ করতে হবে এবং এটি প্রসঙ্গে তার মধ্যে আঠালো - সম্পর্ক সরবরাহ করতে পারে।
  • সত্তাটি কোনও ক্ষেত্রে, পণ্যটির ডিফল্ট URL অবস্থান বলতে পারে say
  • টোকেনগুলি বিকল্প লোকেশন (ভাষা?) নির্দিষ্ট করতে ব্যবহৃত হতে পারে যাতে পণ্যটি প্রদর্শিত হবে।
  • সংস্থাগুলি আমাদের প্র্যাকটিভ ডেটা মডেল সরবরাহ করে যা আমাদের প্রয়োজন এবং এটি প্রসঙ্গে। যার ফলস্বরূপ আমাদের কিছু করার অনুমতি দেয় যেমন: ডাটাবেসে প্রবেশ করুন, সমস্ত পণ্য সত্তা দখল করুন, এবং যদি এক্স, ওয়াই এবং জেড ক্ষেত্রের জন্য অনুবাদ স্ট্রিং না থাকে তবে সেই অনুবাদগুলির স্ট্রিং তৈরি করুন।

গ্রাহক তখন ধরে ফেললে /pl/product/200আপনি ডিবিতে বেড়াতে যান, পণ্য 200 দেখুন এবং ইতিমধ্যে বিদ্যমান plঅনুবাদটি গ্রহণ করুন। সেই পণ্যটির জন্য আপনার কী শিরোনাম এবং ক্যাপশন ক্ষেত্র আছে? অনুবাদগুলিও সেখানে হওয়া উচিত।

মনে রাখবেন যে আপনি কোন অনুবাদ মডিউলটি ব্যবহার করছেন সে ক্ষেত্রে আমি এখানে খুব অস্পষ্ট এবং জেনেরিক হচ্ছি। আপনার নিজের অনুবাদ মডিউলটি ব্যবহার করে আপনি খুব ভালভাবেই শেষ করতে পারেন - সম্ভবত এটিই এর কারণ। ড্রুপালে আমি এখনও অবধি সমস্ত অনুবাদ মডেল দেখেছি (ডি 7 হিসাবে এখনও ডি 8 এর দিকে নজর নেই) প্রতিক্রিয়াশীল, তাত্পর্যপূর্ণ নয়।

সংক্ষেপে

তত্ত্বের মধ্যে, আপনার যা প্রয়োজন তা তৈরি করার সরঞ্জামগুলি রয়েছে, সত্তা মূল উপাদান যা সমস্ত কিছু এক সাথে বেঁধে রাখবে: - ডেটা (অনুবাদ স্ট্রিং), - লক্ষ্য ভাষা languages সত্তাকে নিজেই উপস্থিত থাকতে হবে না, পছন্দসইভাবে একটি শ্রেণীবদ্ধ শব্দভাণ্ডার, পণ্যের ভাষার জন্য বলুন। অথবা অন্যান্য সত্তাগুলির জন্যও জেনেরিক শুল্কবিধি। - প্রসঙ্গ সত্তা প্রদর্শিত হবে যে URL। ইউআরএলটিতে একটি টোকেন থাকবে এবং টোকেনটি টার্গেট ল্যাঙ্গুয়েজ ট্যাক্সনোমিটিকে উল্লেখ করবে।

এই তিনটি উপাদানের সাহায্যে আপনি বলতে পারেন: সমস্ত সত্তা ধরুন , ক্ষেত্রের দিকে যান, ট্যাক্সোনমি টোকেন পান, সমস্ত সম্ভাব্য শব্দ সংমিশ্রণের মাধ্যমে চক্র করুন, খুব বড় কুৎসিত ফর্ম ব্যবহার করে বর্তমান ব্যবহারকারীর কাছে সমস্ত সংমিশ্রণ উপস্থাপন করুন - বা, এজেএক্স - এবং মাল্টি-স্টেপ ফর্মগুলি (এর মতো কিছু) এবং বর্তমানে লগ ইন করা ব্যবহারকারী যেমন পণ্য 200 এর জন্য বিভিন্ন ভাষায় অনুবাদ করেন, সেগুলি কোথাও ডাটাবেসে সংরক্ষণ করুনproductURL alias

ডাটাবেসের কোথাও সত্তার কোনও ফিল্ড এপিআই ক্ষেত্র হতে পারে, প্রতিটি সত্তার অন্তর্গত সেটিংস ক্ষেত্র (ঠিক ফিল্ড এপিআই নয়, তবে এটি এখনও ডেটা ধরে রাখতে পারে), বা আপনি আলাদা আলাদা সারণি ব্যবহার করতে পারেন যা আপনি এর জন্য ব্যবহার করেন। আমি মনে করি সত্তায় ডেটা সংরক্ষণ করা কোড এবং ডেটা উভয়ই পরিপাটি এবং সহজ রাখবে।


এটি বিল্ডিং: সম্ভাব্য সমাধানগুলি

  • ডি 8 এমআই (দ্রুপাল 8 বহুভাষিক উদ্যোগ)
  • কাস্টম কোড: "ইনডেক্স" অনুবাদগুলি টেমপ্লেটগুলিতে টি () দ্বারা প্রোগ্রাম্যাটিকভাবে অনুসন্ধান এবং উপলভ্য বান্ডিল এবং তাদের সম্পর্কিত থিম হুক বাস্তবায়নের মাধ্যমে সরবরাহ করে।

সুডোকোড

ফরচ সত্তা (প্রকারের x এর), সমস্ত ভাষা সন্ধান করুন (পণ্যের সাথে জড়িত মূলশব্দ
বা মূল ভাষা),
সত্তাকে রেন্ডার করুন
- এটির টি () অনুবাদ স্ট্রিংগুলি সনাক্ত করতে
- কল থিম () উপস্থাপন করুন, যা বহুভাষিক উপস্থাপনা স্তরটির পরিচালনা করে পণ্যটি, পণ্য ডেটা মডেল নিজেই নয়।

ফলাফল:
- প্রতিটি ভাষায় সত্তা টেম্পলেট রেন্ডারে প্রথম কল প্রতিটি কলের জন্য ডিফল্ট ভাষা প্রয়োগ করে।
- টেমপ্লেটের টি () পরামিতিগুলি এখন দ্রুপালকে ক্যাশে করা হয়েছে এবং অনুবাদের জন্য প্রস্তুত (প্রতিটি ভাষার উদাহরণের জন্য, প্রতিটি পণ্যের উদাহরণ নয়)।
- "অনুবাদক" ভূমিকা সহ ব্যবহারকারী এখন অনুবাদ ইন্টারফেসে যেতে পারেন এবং প্রতিটি ভাষার জন্য উপলব্ধ সমস্ত টি () পরামিতি অনুবাদ করতে পারেন।
- সাইটের মালিকদের প্রতিটি পণ্য পৃষ্ঠা দেখার জন্য গ্রাহকদের অপেক্ষা করতে বা প্রতিটি পণ্য পৃষ্ঠা ম্যানুয়ালি দেখার দরকার নেই, কারণ এটি তার জন্য প্রোগ্রামিকভাবে করা হয়েছিল।

মুক্ত প্রশ্ন:
- প্রসঙ্গটি কী? আমি যদি প্রতিটি "পণ্য" সত্তা বান্ডিলের জন্য থিম () তে প্রোগ্রাম্যাটিক কল করি, তবে এটি কি সেই অবস্থানটি রেকর্ড করে যেখানে কলটি করা হয়েছিল? এটি নোডের ইউআরএল রেকর্ড করে? "প্রসঙ্গ" পরিবর্তন করা যেতে পারে? প্রসঙ্গে রেকর্ড করা হয় কোথায়? আপনার যখন "ডায়নামিক" টেম্পলেট রয়েছে - তখন যখন আপনার প্রতি পণ্য প্রতি একাধিক টেম্পলেট থাকে এবং আপনি কীভাবে এই ভিন্নতাগুলি সনাক্ত করতে চলেছেন?

সর্বদা হিসাবে, থিয়োরাইজিং এবং সিউডোকোড কেবল মস্তিষ্কের জন্য ভাল or তবে বিকাশে আমরা প্রোটোটাইপিং শুরু না করা পর্যন্ত আমরা সত্যই কি বিরুদ্ধে আছি তা খুব কমই জানতে পারব। তাই বেশ কয়েকটি বাধা, সম্ভাব্য সমাধান এবং সম্ভাব্য সমস্যা বা প্রশ্ন আঁকিয়েছি - আমি এখন ধারণার প্রমাণ বা কাজ করার প্রোটোটাইপ প্রয়োগ করতে এগিয়ে যেতে পারি। উপরের কয়েকটি উন্মুক্ত প্রশ্নের কেবলমাত্র এইভাবে উত্তর দেওয়া যেতে পারে, এবং প্রারম্ভিক আমরা প্রোটোটাইপ (সাফল্য বা ব্যর্থতা নির্বিশেষে), আমরা সেই কয়েকটি প্রশ্নের উত্তর দেওয়া শুরু করতে পারি - বা সম্পূর্ণরূপে দৃষ্টিভঙ্গি পরিবর্তন করতে পারি। থাকুন ~


1
এমনকি পুরো পোস্টটি না পড়েও, এই ধরণের উত্তরটি উত্তরের দাবিদার
ওলেগ ভিদেনভ

মুল বক্তব্যটি - সরঞ্জাম যা দাবি করে যে এটি ড্রুপাল 7 এর জন্য আমার যা প্রয়োজন তা ইতিমধ্যে বিদ্যমান। ড্রপাল খারাপ মেটাটাটা দিয়ে এই স্ট্রিংগুলি সংরক্ষণ করার ক্ষেত্রে এটি কেবল একটি সমস্যা। তবে আমি পরিবর্তনটি বলতে পারি ডাবায় মেটাডেটা একবার স্ট্রিং সংগ্রহ করা গেলে, কোনও সমস্যা নেই। এগুলিতে কী সেট করতে হবে তা আমার কেবল দরকার, যাতে সরঞ্জামটি এটি দেখতে পারে। বা কমপক্ষে আমি বিশ্বাস করি এটি আমার প্রয়োজন। এবং সর্বাধিক গুরুত্বপূর্ণ: আমি পণ্যগুলি অনুবাদ করতে চাই না, কেবলমাত্র টেমপ্লেট স্ট্রিংগুলির সাথে পণ্যটির নিজস্ব কোনও সম্পর্ক নেই, যেমন পূর্ববর্তী - পরবর্তী পণ্য চিত্র গ্যালারী টেমপ্লেটে।
মোইট

2

ঠিক আছে, একই দৃশ্যের পুনরুত্পাদন করতে স্থানীয়করণ ক্লায়েন্ট এবং সত্তা অনুবাদ মডিউলটির সাথে আরও কিছুটা সময় ব্যয় করুন। যেহেতু এই উত্তরটি আমার আগের উত্তর থেকে সম্পূর্ণ পৃথক, পৃথক মন্তব্য হিসাবে যুক্ত:

  1. এক / প্রথম নোডের কোনও ভাষার জন্য সংযুক্ত অনুবাদটি সমস্ত নোডের জন্য উপলভ্য।

    এখানে একটি উদাহরণ:

    • আমি যদি এনআইডি 200 হিসাবে একই ধরণের নতুন পণ্য যুক্ত করি এবং pl অনুবাদটি নতুন নোডে যান (pl / product / 204 বলুন), আমি pl / product / 200 তে একই অনুবাদ স্ট্রিংটি দেখতে পাব।

    • কেবলমাত্র পার্থক্য হ'ল এটি স্থানীয়করণ ক্লায়েন্টে উপস্থিত হয় না। আমরা এই বৈশিষ্ট্যটির জন্য মডিউলটির ইস্যু সারিতে জিজ্ঞাসা করতে পারি, তবে এটি আরও বিভ্রান্তির পরিচয় দেবে কারণ অনুবাদটি বর্তমান পৃষ্ঠার সাথে সুনির্দিষ্ট নয় এবং এটি সমস্ত পৃষ্ঠাগুলিকে প্রভাবিত করবে (অর্থাত্ pl / product / 200 & pl / product / 204)।

    • যদি দুটি নোড দুটি পৃথক পৃথক ব্যক্তির দ্বারা নির্মিত হয়, এবং পরবর্তীটি অনুবাদ পরিবর্তন করতে চায় তবে তাদের ইন্টারফেস অনুবাদটি ব্যবহার করতে হবে।

  2. আপনি একই নোডের জন্য যে ভাষাটি প্রথম দেখেন তার জন্য স্থানীয়করণ ক্লায়েন্টে স্ট্রিংটি উপলব্ধ

    এখানে একটি উদাহরণ:

    • যদি আমি নতুন প্রোডাক্ট এনআইডি 199 যুক্ত করি এবং 'pl' ভাষা (এনড 200) এর অনুবাদ এবং 'আরএস' ভাষার (এনআইডি 201) অনুবাদ তৈরি করি, আপনি 'আরএস' পৃষ্ঠাতে নয়, কেবল 'পিএল' পৃষ্ঠায় স্ট্রিং দেখতে পাবেন। আবার এটি স্থানীয়করণ ক্লায়েন্ট মডিউলে কোনও বিধিনিষেধের মতো দেখায়।

1

টেমপ্লেট বা মডিউল ফাইল স্তরে অনুবাদ স্ট্রিং যুক্ত করার আপনার দৃষ্টিভঙ্গি ইন্টারফেস অনুবাদ ইউআইয়ের জন্য কাজ করতে পারে তবে স্থানীয়করণ ক্লায়েন্ট নয়।

স্পষ্টতই যখন আপনার 200 পণ্যটির রাশিয়ান সংস্করণ থাকবে, এটি একটি নতুন নোড হবে, উদাহরণস্বরূপ বলুন / রু / পণ্য / 201 যেখানে আপনি স্থানীয়করণ ক্লায়েন্ট ব্যবহার করে অনুবাদ করতে পারেন।

কেবল একটি চিন্তা: একটি স্ট্রিং সন্ধান করুন যা ইন্টারফেস অনুবাদ ইউআই-তে সমস্ত ভাষার জন্য অনুবাদ করা যেতে পারে এবং গ্রাহককে যখন পণ্যটির স্তরটি সত্যই প্রয়োজনীয় হয় তখন অনুবাদ করতে বলুন। এখানে একটি উদাহরণ:

"এটি বিভাগ বারের পণ্য হ'ল"

এবং যদি আমরা নিশ্চিত যে 'foo' ও 'বার' ব্যতীত অন্য কিছু সাধারণ হতে পারে তবে আমরা যুক্ত করতে পারি

$vars['product_title'] = t('This is product @product of category @category')

প্রিপ্রোসেসে।

এবং .tpl.php ফাইলটি হবে

<?php t($product_title, array('@product' => t('foo'),  '@category' => t('bar')); ?>

এটি titleচিত্রের ঘূর্ণায়মান তীরগুলির পাঠ্য সম্পর্কে আরও বেশি । আমার মডিউলটি কীভাবে থিম 15 টি চিত্র প্রদর্শিত হবে তা বিবেচনা করে না। এবং থিম প্রদর্শন একটি সময়ে 5, "পূর্ববর্তী" এবং "পরবর্তী" তীর সহ চাহিদা যে altএবং title, এবং চাহিদা তাদের অনূদিত। প্রতিবার আমার ফ্রন্ট-এন্ড পরিবর্তিত হবে মডিউল পরিবর্তন করা সম্ভব তবে অবশ্যই এটির প্রয়োজন হবে না। এই স্ট্রিংগুলির মডিউল নিজেই কোনও সম্পর্ক নেই । সর্বশেষে তবে কমপক্ষে, আমি থিমের অজানা স্ট্রিংগুলি পরিবর্তিত হতে পারি। বা এগুলিকে মডিউলে স্থানান্তরিত করার জন্য উপলব্ধ নয়।
Mołot

আইএমএইচও, এই কেসটি স্থানীয়করণ ক্লায়েন্টের পরিবর্তে ইন্টারফেস অনুবাদ ইউআইতে পরিচালনা করা উচিত।
vijaycs85

স্থানীয়করণ ক্লায়েন্টের লক্ষ্য "আপনার সমস্যাগুলি যেমন দেখছেন তেমন আপনার সাইটে অনুবাদগুলি ঠিক করার " অনুমতি দেওয়ার জন্য - কেন এটি টেম্পলেট ফাইলগুলিতে প্রয়োগ করা উচিত নয়? Tpl এর স্ট্রিংগুলি প্রাসঙ্গিকভাবে আরও কিছু সংবেদনশীল, যদি কিছু থাকে।
Mołot

1

অনুবাদ টেমপ্লেট এক্সট্রাক্টরের সাথে আফাইক আপনি t()ফাংশনে আপনার সমস্ত কলের মধ্যে স্ট্রিংটি বের করতে পারেন ।

ট্রান্সলেশন টেম্পলেট এক্সট্র্যাক্টর একটি ওয়েব ভিত্তিক এবং একটি কমান্ড লাইন গেটেক্সটक्स অনুবাদ টেম্পলেট এক্সট্র্যাক্টর ইন্টারফেসের পাশাপাশি দ্রুপালের জন্য অনুবাদযোগ্য স্ট্রিং এবং অনুবাদযোগ্যতা ত্রুটিগুলি অনুসন্ধান করার জন্য একটি পুনরায় ব্যবহারযোগ্য এপিআই সরবরাহ করে। এই সরঞ্জামটি http://localize.drupal.org/ এ হুডের নীচে ব্যবহৃত হয় এবং সেই সাথে Drupal.org প্রকল্পের প্রকাশের জন্য পার্সিং মেশিন হিসাবে পরিবেশন করতে পারে।

এটি পড়ুন কীভাবে কোনও মডিউল অনুবাদ করবেন?

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.