Skip to content

Commit a1ed2ac

Browse files
authored
Merge pull request #46189 from asem-hamid/Localizing-files-in-includes
[bn] Localizing files in includes and small fixes
2 parents 46390e4 + 99a7cf7 commit a1ed2ac

File tree

9 files changed

+112
-6
lines changed

9 files changed

+112
-6
lines changed

content/bn/docs/concepts/_index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,5 @@ weight: 40
1010
ধারণা বিভাগটি আপনাকে কুবারনেটিস সিস্টেমের অংশগুলো এবং কুবারনেটিস আপনার {{< glossary_tooltip text="ক্লাস্টারের" term_id="cluster" length="all" >}} প্রতিনিধিত্ব করার জন্য যে অ্যাবস্ট্রাকশনগুলো ব্যবহার করে সেগুলো সম্পর্কে শিখতে সাহায্য করে এবং কুবারনেটিস কীভাবে কাজ করে সে সম্পর্কে আপনাকে গভীরভাবে বুঝতে সাহায্য করে ।
1111

1212

13+
1314
<!-- body -->
65.9 KB
Loading

content/bn/docs/tasks/_index.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
---
2-
title: কাজ
2+
title: টাস্ক
33
main_menu: true
44
weight: 50
5-
content_type: ধারণা
5+
content_type: concept
66
---
77

88
<!-- overview -->
99

1010
কুবারনেটিস ডকুমেন্টেশনের এই বিভাগে এমন পৃষ্ঠা রয়েছে
11-
যা দেখায় কিভাবে পৃথক কাজ করতে হয়। সাধারণত পদক্ষেপের একটি সংক্ষিপ্ত ক্রম দিয়ে একটি টাস্ক পেজ দেখায় কিভাবে একটি একক জিনিস করতে হয়।
11+
যা দেখায় কিভাবে পৃথক টাস্ক করতে হয়। সাধারণত পদক্ষেপের একটি
12+
সংক্ষিপ্ত ক্রম দিয়ে একটি টাস্ক পেজ দেখায় কিভাবে একটি একক জিনিস করতে হয়।
1213

1314
আপনি যদি একটি টাস্ক পৃষ্ঠা লিখতে চান, দেখুন কীভাবে
14-
[একটি ডকুমেন্টেশন পুল অনুরোধ তৈরি করা](/docs/contribute/new-content/open-a-pr/) যায়।
15+
[একটি ডকুমেন্টেশন পুল রিকোয়েস্ট তৈরি করা](/docs/contribute/new-content/open-a-pr/) যায়।
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
---
2+
title: "উদাহরণ: একটি জাভা মাইক্রোসার্ভিস কনফিগার করা"
3+
weight: 10
4+
---
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
import subprocess
2+
import re
3+
4+
# Finds the documents to rewrite for files that include user-guide-content-moved.md.
5+
# Then opens these files and processes the stuff after those lines to figure out where
6+
# the line should move to.
7+
# Returns a list of ('old/path', 'new/path') tuples.
8+
def find_documents_to_rewrite():
9+
cmd = "ag --markdown -Q -l \"{% include user-guide-content-moved.md %}\""
10+
moved_docs = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE).stdout.read().splitlines()
11+
12+
rewrites = []
13+
for doc in moved_docs:
14+
location = doc_location(doc)
15+
destinations = get_destinations_for_doc(doc)
16+
17+
if len(destinations) == 0:
18+
print("Unable to get possible destinations for %s" % doc)
19+
elif len(destinations) > 1:
20+
print("%s has multiple potential destinations. Not rewriting links." % doc)
21+
else:
22+
# print("%s --> %s" % (location, destinations[0]))
23+
rewrites.append((location, destinations[0]))
24+
25+
return rewrites
26+
27+
# Returns the location of the documentation as we will refer to it in the markdown.
28+
# /docs/path/to/foo/index.md are available at /docs/path/to/foo/
29+
# /docs/path/to/foo/bar.md are available at /docs/path/to/foo/bar/
30+
def doc_location(filename):
31+
if filename.endswith('/index.md'):
32+
return "/docs/" + filename[:-9] + "/"
33+
else:
34+
return "/docs/" + filename[:-3] + "/"
35+
36+
REDIRECT_REGEX = re.compile("^.*\[(.*)\]\((.*)\)$")
37+
38+
def get_destinations_for_doc(filename):
39+
destination_paths = []
40+
with open(filename) as f:
41+
lines = [line.rstrip('\n').rstrip('\r') for line in f.readlines()]
42+
43+
# Remove empty lines
44+
lines = filter(bool, lines)
45+
46+
content_moved_index = lines.index("{% include user-guide-content-moved.md %}")
47+
48+
# Get everything after that line.
49+
destinations = lines[content_moved_index + 1:]
50+
for destination in destinations:
51+
result = REDIRECT_REGEX.match(destination)
52+
if not result:
53+
return []
54+
doc_title = result.group(1) # Unused, can print it out for more info.
55+
new_path = result.group(2)
56+
destination_paths.append(new_path)
57+
58+
return destination_paths
59+
60+
# Given a list of (old/path, new/path) tuples executes a sed command across all files in
61+
# to replace (/docs/path/to/old/doc/) with (/docs/path/to/new/doc/).
62+
def rewrite_documents(rewrites):
63+
cmd = "find . -name '*.md' -type f -exec sed -i.bak 's@(%s)@(%s)@g' '{}' \;"
64+
for original, new in rewrites:
65+
66+
print("%s --> %s" % (original, new))
67+
original = original.replace('-', '\-')
68+
new = new.replace('-', '\-')
69+
70+
#print(cmd % (original, new))
71+
subprocess.call(cmd % (original, new), shell=True)
72+
73+
# We can't have in-line replace across multiple files without sudo (I think), so it
74+
# creates a lot of backups that we have to delete.
75+
def remove_sed_backups():
76+
cmd = "find . -name '*.bak' -delete"
77+
subprocess.call(cmd, shell=True)
78+
79+
def main():
80+
rewrites = find_documents_to_rewrite()
81+
rewrite_documents(rewrites)
82+
remove_sed_backups()
83+
84+
if __name__ == "__main__":
85+
main()
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
আপনার হয় একটি ডিফল্ট [StorageClass](/bn/docs/concepts/storage/storage-classes/) সহ
2+
একটি [dynamic PersistentVolume provisioner](/bn/docs/concepts/storage/dynamic-provisioning/) থাকতে হবে,
3+
অথবা এখানে ব্যবহৃত [PersistentVolumeClaims](/docs/concepts/storage/persistent-volumes/#persistentvolumeclaims)
4+
গুলোকে সন্তুষ্ট করার জন্য নিজেকে [statically provision PersistentVolumes](/docs/concepts/storage/persistent-volumes/#provisioning)
5+
করতে হবে।
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
আপনার সমস্ত নোডগুলিতে শেল অ্যাক্সেস থাকতে হবে এবং আপনার ক্লাস্টারের সাথে যোগাযোগ করার জন্য
2+
kubectl কমান্ড-লাইন টুলটি কনফিগার করা আবশ্যক। কমপক্ষে দুটি নোড সহ একটি ক্লাস্টারে এই টিউটোরিয়ালটি
3+
চালানোর পরামর্শ দেওয়া হচ্ছে যা কন্ট্রোল প্লেন হোস্ট হিসাবে কাজ করছে না।
Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
1-
আপনার একটি Kubernetes ক্লাস্টার থাকতে হবে এবং আপনার ক্লাস্টারের সাথে যোগাযোগের জন্য kubectl কমান্ড-লাইন টুলটি কনফিগার করা আবশ্যক । কমপক্ষে দুটি নোড সহ একটি ক্লাস্টারে (যা কন্ট্রোল প্লেন হোস্ট হিসাবে কাজ করছে না) এই টিউটোরিয়ালটি চালাতে হবে । আপনার যদি ইতিমধ্যে একটি ক্লাস্টার না থাকে তবে আপনি [minikube](https://minikube.sigs.k8s.io/docs/tutorials/multi_node/) ব্যবহার করে একটি তৈরি করতে পারেনি বা এই Kubernetes playground-গুলির মধ্যে একটি ব্যবহার করতে পারেন ।
1+
আপনার একটি কুবারনেটিস ক্লাস্টার থাকতে হবে এবং আপনার ক্লাস্টারের সাথে যোগাযোগের জন্য
2+
kubectl কমান্ড-লাইন টুলটি কনফিগার করা আবশ্যক । কমপক্ষে দুটি নোড সহ একটি ক্লাস্টারে (যা কন্ট্রোল প্লেন হোস্ট হিসাবে কাজ করছে না) এই টিউটোরিয়ালটি চালাতে হবে । আপনার যদি ইতিমধ্যে একটি ক্লাস্টার না থাকে তবে আপনি
3+
[minikube](https://minikube.sigs.k8s.io/docs/tutorials/multi_node/)
4+
ব্যবহার করে একটি তৈরি করতে পারেনি বা এই Kubernetes playground-গুলির
5+
মধ্যে একটি ব্যবহার করতে পারেন ।
26

37
* [Killercoda](https://killercoda.com/playgrounds/scenario/kubernetes)
4-
* [Play with Kubernetes](http://labs.play-with-k8s.com/)
8+
* [Play with Kubernetes](https://labs.play-with-k8s.com/)
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
কুবারনেটিস ডক্সের ইউজার গাইড বিভাগের বিষয়গুলো
2+
[টাস্ক](/bn/docs/tasks/), [টিউটোরিয়াল](/bn/docs/tutorials/) এবং
3+
[ধারণা](/bn/docs/concepts) বিভাগে সরানো হচ্ছে। এই বিষয়ের কনটেন্ট স্থানান্তরিত হয়েছে:

0 commit comments

Comments
 (0)