Commit 7ba55d3a authored by sheteng's avatar sheteng

资讯

parent 09b15c01
...@@ -118,4 +118,6 @@ dependencies { ...@@ -118,4 +118,6 @@ dependencies {
implementation("com.github.bumptech.glide:glide:4.11.0") implementation("com.github.bumptech.glide:glide:4.11.0")
annotationProcessor("com.github.bumptech.glide:compiler:4.11.0") annotationProcessor("com.github.bumptech.glide:compiler:4.11.0")
implementation("com.github.open-android:JieCaoVideoPlayer:0.1.0")
} }
\ No newline at end of file
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
<package android:name="com.tencent.mm" /> <package android:name="com.tencent.mm" />
<package android:name="com.tencent.mobileqq" /> <package android:name="com.tencent.mobileqq" />
<package android:name="com.baidu.browser.apps" /> <package android:name="com.baidu.browser.apps" />
<package android:name="com.ldsanguo.shark" />
</queries> </queries>
<application <application
......
...@@ -2,6 +2,7 @@ package com.ccwangluo.accelerator.ui ...@@ -2,6 +2,7 @@ package com.ccwangluo.accelerator.ui
import android.Manifest import android.Manifest
import android.content.Intent import android.content.Intent
import android.hardware.Sensor
import android.os.Bundle import android.os.Bundle
import android.os.Looper import android.os.Looper
import android.view.KeyEvent import android.view.KeyEvent
...@@ -29,6 +30,9 @@ import com.tencent.tauth.Tencent ...@@ -29,6 +30,9 @@ import com.tencent.tauth.Tencent
import com.umeng.socialize.UMShareAPI import com.umeng.socialize.UMShareAPI
import com.xuexiang.xpage.base.XPageActivity import com.xuexiang.xpage.base.XPageActivity
import com.xuexiang.xpage.core.PageOption import com.xuexiang.xpage.core.PageOption
import android.hardware.SensorManager
import android.hardware.SensorEventListener
import fm.jiecao.jcvideoplayer_lib.JCVideoPlayer
class MainActivity() : XPageActivity(), TencentLocationListener { class MainActivity() : XPageActivity(), TencentLocationListener {
...@@ -41,6 +45,8 @@ class MainActivity() : XPageActivity(), TencentLocationListener { ...@@ -41,6 +45,8 @@ class MainActivity() : XPageActivity(), TencentLocationListener {
private lateinit var accelertorViewModel: AccelertorViewModel private lateinit var accelertorViewModel: AccelertorViewModel
private var mSensorEventListener: SensorEventListener? = null
private var mSensorManager: SensorManager? = null
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
accelertorViewModel = accelertorViewModel =
...@@ -95,12 +101,37 @@ class MainActivity() : XPageActivity(), TencentLocationListener { ...@@ -95,12 +101,37 @@ class MainActivity() : XPageActivity(), TencentLocationListener {
} }
AcceleratorUtils.initConnect(this, connect) AcceleratorUtils.initConnect(this, connect)
mSensorManager = getSystemService(SENSOR_SERVICE) as SensorManager
mSensorEventListener = JCVideoPlayer.JCAutoFullscreenListener()
} }
private fun initPhoneUtils() { private fun initPhoneUtils() {
PhoneUtils.getPhoneInfo() PhoneUtils.getPhoneInfo()
} }
override fun onBackPressed() {
if (JCVideoPlayer.backPress()) {
return
}
super.onBackPressed()
}
override fun onResume() {
super.onResume()
val mSensor = mSensorManager?.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
mSensorManager?.registerListener(
mSensorEventListener,
mSensor,
SensorManager.SENSOR_DELAY_NORMAL
);
}
override fun onPause() {
super.onPause()
mSensorManager?.unregisterListener(mSensorEventListener);
JCVideoPlayer.releaseAllVideos();
}
override fun onStart() { override fun onStart() {
super.onStart() super.onStart()
AcceleratorUtils.onStart() AcceleratorUtils.onStart()
...@@ -135,10 +166,10 @@ class MainActivity() : XPageActivity(), TencentLocationListener { ...@@ -135,10 +166,10 @@ class MainActivity() : XPageActivity(), TencentLocationListener {
} }
override fun onLocationChanged(p0: TencentLocation?, p1: Int, p2: String?) { override fun onLocationChanged(p0: TencentLocation?, p1: Int, p2: String?) {
if (p1 == 0){ if (p1 == 0) {
p0?.province?.let { p0?.province?.let {
AuthManager.area = it AuthManager.area = it
} }
} }
} }
......
...@@ -178,11 +178,11 @@ class AccelertorFragment : XPageFragment() { ...@@ -178,11 +178,11 @@ class AccelertorFragment : XPageFragment() {
if (binding.expandableLayout1.isExpanded) { if (binding.expandableLayout1.isExpanded) {
binding.expandableLayout1.toggle() binding.expandableLayout1.toggle()
binding.expandableLayout2.expand() binding.expandableLayout2.expand()
binding.btnExpendBg.setBackgroundResource(com.ccwangluo.accelerator.R.mipmap.quick_arrow_up) binding.btnExpendBg.setBackgroundResource(R.mipmap.quick_arrow_up)
} else { } else {
binding.expandableLayout1.expand() binding.expandableLayout1.expand()
binding.expandableLayout2.toggle() binding.expandableLayout2.toggle()
binding.btnExpendBg.setBackgroundResource(com.ccwangluo.accelerator.R.mipmap.quick_arrow_down) binding.btnExpendBg.setBackgroundResource(R.mipmap.quick_arrow_down)
} }
} }
binding.btnQuick.setOnClickListener { binding.btnQuick.setOnClickListener {
...@@ -240,6 +240,12 @@ class AccelertorFragment : XPageFragment() { ...@@ -240,6 +240,12 @@ class AccelertorFragment : XPageFragment() {
} }
binding.gameStart.setOnClickListener {
AcceleratorUtils.game?.let {
AppUtils.launchApp(it.packageName)
}
}
} }
fun openToWebview(url: String) { fun openToWebview(url: String) {
...@@ -283,6 +289,7 @@ class AccelertorFragment : XPageFragment() { ...@@ -283,6 +289,7 @@ class AccelertorFragment : XPageFragment() {
}).show<CommonDialog>() }).show<CommonDialog>()
SettingSPUtils.isFirstAccSuccess = false SettingSPUtils.isFirstAccSuccess = false
} }
binding.gameStart.visibility = View.VISIBLE
} else { } else {
binding.gamePicIn1.clearAnimation() binding.gamePicIn1.clearAnimation()
if (binding.gamePicOut.background is AnimationDrawable) { if (binding.gamePicOut.background is AnimationDrawable) {
...@@ -290,6 +297,7 @@ class AccelertorFragment : XPageFragment() { ...@@ -290,6 +297,7 @@ class AccelertorFragment : XPageFragment() {
} }
binding.accStateTx.visibility = View.GONE binding.accStateTx.visibility = View.GONE
binding.btnQuick.setBackgroundResource(R.mipmap.quick_start) binding.btnQuick.setBackgroundResource(R.mipmap.quick_start)
binding.gameStart.visibility = View.GONE
} }
} }
......
...@@ -5,7 +5,10 @@ import android.view.View ...@@ -5,7 +5,10 @@ import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import com.ccwangluo.accelerator.R import com.ccwangluo.accelerator.R
import com.ccwangluo.accelerator.adapter.KotlinDataAdapter
import com.ccwangluo.accelerator.databinding.FragmentNewsBinding import com.ccwangluo.accelerator.databinding.FragmentNewsBinding
import com.ccwangluo.accelerator.model.News
import com.ccwangluo.accelerator.ui.news.NewsCollectionAdapter import com.ccwangluo.accelerator.ui.news.NewsCollectionAdapter
import com.google.android.material.tabs.TabLayoutMediator import com.google.android.material.tabs.TabLayoutMediator
import com.xuexiang.xpage.base.XPageFragment import com.xuexiang.xpage.base.XPageFragment
...@@ -20,6 +23,8 @@ class NewsFragment : XPageFragment() { ...@@ -20,6 +23,8 @@ class NewsFragment : XPageFragment() {
return null return null
} }
var dataList = arrayListOf<String>()
override fun inflateView(inflater: LayoutInflater?, container: ViewGroup?): View { override fun inflateView(inflater: LayoutInflater?, container: ViewGroup?): View {
_binding = FragmentNewsBinding.inflate(inflater!!, container, false) _binding = FragmentNewsBinding.inflate(inflater!!, container, false)
newsViewModel = ViewModelProvider(requireActivity()).get(NewsViewModel::class.java) newsViewModel = ViewModelProvider(requireActivity()).get(NewsViewModel::class.java)
...@@ -31,13 +36,20 @@ class NewsFragment : XPageFragment() { ...@@ -31,13 +36,20 @@ class NewsFragment : XPageFragment() {
override fun initViews() { override fun initViews() {
newsViewModel.refreshState.observe(this, { newsViewModel.refreshState.observe(this, {
if (!it) { if (!it) {
binding.refreshLayout.isRefreshing = false
} }
}) })
binding.tvMarquee.addDisplayString("【公告】韩服 DNF已经开启预约啦,小伙伴…") binding.tvMarquee.addDisplayString("【公告】韩服 DNF已经开启预约啦,小伙伴…")
binding.tvMarquee.startRoll() binding.tvMarquee.startRoll()
binding.gameNewsList.adapter = KotlinDataAdapter.Builder<String>()
.setData(dataList)
.setLayoutId(R.layout.item_news_game)
.addBindView{itemView, itemData ->
}.create()
adapter = NewsCollectionAdapter(this, titles) adapter = NewsCollectionAdapter(this, titles)
binding.viewPager.adapter = adapter binding.viewPager.adapter = adapter
TabLayoutMediator(binding.tabLayout, binding.viewPager) { tab, position -> TabLayoutMediator(binding.tabLayout, binding.viewPager) { tab, position ->
...@@ -48,12 +60,12 @@ class NewsFragment : XPageFragment() { ...@@ -48,12 +60,12 @@ class NewsFragment : XPageFragment() {
} }
override fun initListeners() { override fun initListeners() {
binding.refreshLayout.setOnRefreshListener { // binding.refreshLayout.setOnRefreshListener {
adapter?.refresh(binding.viewPager.currentItem) // adapter?.refresh(binding.viewPager.currentItem)
binding.refreshLayout.postDelayed({ // binding.refreshLayout.postDelayed({
binding.refreshLayout.isRefreshing = false // binding.refreshLayout.isRefreshing = false
}, 2000) // }, 2000)
} // }
} }
companion object { companion object {
......
...@@ -19,9 +19,9 @@ class NewsViewModel : ViewModel() { ...@@ -19,9 +19,9 @@ class NewsViewModel : ViewModel() {
fun freshData(position: String, gameId: Int, page: Int) { fun freshData(position: String, gameId: Int, page: Int) {
val type = when (position) { val type = when (position) {
"0" -> "" "0" -> ""
"1" -> "0" "1" -> 1
"2" -> "1" "2" -> 2
else -> 3 else -> position
} }
viewModelScope.launch(Dispatchers.IO) { viewModelScope.launch(Dispatchers.IO) {
val res = val res =
...@@ -37,4 +37,6 @@ class NewsViewModel : ViewModel() { ...@@ -37,4 +37,6 @@ class NewsViewModel : ViewModel() {
} }
} }
\ No newline at end of file
package com.ccwangluo.accelerator.ui.news package com.ccwangluo.accelerator.ui.news
import android.net.Uri
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.ImageView import android.widget.ImageView
import android.widget.TextView import android.widget.TextView
import android.widget.VideoView
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
...@@ -19,7 +17,15 @@ import com.ccwangluo.accelerator.ui.news.NewsCollectionAdapter.Companion.ARG_OBJ ...@@ -19,7 +17,15 @@ import com.ccwangluo.accelerator.ui.news.NewsCollectionAdapter.Companion.ARG_OBJ
import com.ccwangluo.accelerator.utils.AcceleratorUtils import com.ccwangluo.accelerator.utils.AcceleratorUtils
import com.xuexiang.xpage.base.XPageFragment import com.xuexiang.xpage.base.XPageFragment
import com.xuexiang.xpage.utils.TitleBar import com.xuexiang.xpage.utils.TitleBar
import com.xuexiang.xutil.app.AppUtils import fm.jiecao.jcvideoplayer_lib.JCVideoPlayer
import android.graphics.Bitmap
import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard
import android.media.MediaMetadataRetriever
import com.ccwangluo.accelerator.model.NewsModel
import java.lang.IllegalArgumentException
class NewsObjectFragment : XPageFragment() { class NewsObjectFragment : XPageFragment() {
var recycle_view: RecyclerView? = null var recycle_view: RecyclerView? = null
...@@ -30,15 +36,17 @@ class NewsObjectFragment : XPageFragment() { ...@@ -30,15 +36,17 @@ class NewsObjectFragment : XPageFragment() {
private lateinit var newsViewModel: NewsViewModel private lateinit var newsViewModel: NewsViewModel
private val deviceList = arrayListOf<News>() private val dataList = arrayListOf<News>()
private val page = 1 private var page = 1
private lateinit var position: String private lateinit var position: String
private var newsModel: NewsModel? = null
override fun inflateView(inflater: LayoutInflater?, container: ViewGroup?): View { override fun inflateView(inflater: LayoutInflater?, container: ViewGroup?): View {
newsViewModel = ViewModelProvider(this).get(NewsViewModel::class.java) newsViewModel = ViewModelProvider(this).get(NewsViewModel::class.java)
return inflater!!.inflate(R.layout.fragment_collection_object, container, false) return inflater!!.inflate(R.layout.fragment_collection_object, container, false)
} }
private var gameId = 0
override fun initViews() { override fun initViews() {
arguments?.takeIf { it.containsKey(ARG_OBJECT) }?.apply { arguments?.takeIf { it.containsKey(ARG_OBJECT) }?.apply {
position = getInt(ARG_OBJECT).toString() position = getInt(ARG_OBJECT).toString()
...@@ -46,13 +54,14 @@ class NewsObjectFragment : XPageFragment() { ...@@ -46,13 +54,14 @@ class NewsObjectFragment : XPageFragment() {
val layoutManager = LinearLayoutManager(context) val layoutManager = LinearLayoutManager(context)
recycle_view?.setLayoutManager(layoutManager) recycle_view?.setLayoutManager(layoutManager)
val adapter = KotlinDataAdapter.Builder<News>() val adapter = KotlinDataAdapter.Builder<News>()
.setData(deviceList) .setData(dataList)
.setLayoutId(R.layout.item_dynamic) .setLayoutId(R.layout.item_dynamic)
.addBindView { itemView, itemData -> .addBindView { itemView, itemData ->
val avatar = itemView.findViewById<ImageView>(R.id.avatar) val avatar = itemView.findViewById<ImageView>(R.id.avatar)
Glide.with(this@NewsObjectFragment).load(itemData.avatar).into(avatar) Glide.with(this@NewsObjectFragment).load(itemData.avatar).into(avatar)
itemView.findViewById<TextView>(R.id.nickname).setText(itemData.nickname) itemView.findViewById<TextView>(R.id.nickname).setText(itemData.nickname)
itemView.findViewById<TextView>(R.id.createdDate).setText(itemData.createdDate) itemView.findViewById<TextView>(R.id.createdDate)
.setText(itemData.createdDate?.substring(0, 10))
itemData.title?.let { itemData.title?.let {
itemView.findViewById<TextView>(R.id.title).visibility = View.VISIBLE itemView.findViewById<TextView>(R.id.title).visibility = View.VISIBLE
itemView.findViewById<TextView>(R.id.title).setText(it) itemView.findViewById<TextView>(R.id.title).setText(it)
...@@ -64,21 +73,32 @@ class NewsObjectFragment : XPageFragment() { ...@@ -64,21 +73,32 @@ class NewsObjectFragment : XPageFragment() {
} ?: let { } ?: let {
itemView.findViewById<TextView>(R.id.abbrContent).visibility = View.GONE itemView.findViewById<TextView>(R.id.abbrContent).visibility = View.GONE
} }
// 资讯类型:0攻略 1视频 // 资讯类型:0攻略 1视频
val imgs = itemView.findViewById<ImageView>(R.id.imgs) val imgs = itemView.findViewById<ImageView>(R.id.imgs)
val vedio = itemView.findViewById<VideoView>(R.id.video_view) val vedio = itemView.findViewById<JCVideoPlayerStandard>(R.id.video_view)
if (itemData.type == 0) { vedio.backButton.visibility = View.GONE
itemData.imgs?.let { vedio.tinyBackImageView.visibility = View.GONE
imgs.visibility = View.VISIBLE itemData.imgs?.let {
vedio.visibility = View.GONE imgs.visibility = View.VISIBLE
Glide.with(this@NewsObjectFragment).load(itemData.imgs).into(imgs) vedio.visibility = View.GONE
} Glide.with(this@NewsObjectFragment).load(itemData.imgs).into(imgs)
} else if (itemData.type == 1) { }
itemData.videoUrl?.let { itemData.videoUrl?.let {
imgs.visibility = View.GONE imgs.visibility = View.GONE
vedio.visibility = View.VISIBLE vedio.visibility = View.VISIBLE
vedio.setVideoURI(Uri.parse(it)) vedio.setUp(
} it, JCVideoPlayer.SCREEN_LAYOUT_LIST
)
Glide.with(this@NewsObjectFragment).load(getNetVideoBitmap(it))
.into(vedio.thumbImageView)
}
itemData.pageViews?.let {
itemView.findViewById<TextView>(R.id.pageViews).setText("${it}浏览")
}
itemData.greatNum?.let {
itemView.findViewById<TextView>(R.id.great_num).setText("${it}")
} }
} }
.create() .create()
...@@ -86,27 +106,68 @@ class NewsObjectFragment : XPageFragment() { ...@@ -86,27 +106,68 @@ class NewsObjectFragment : XPageFragment() {
AcceleratorUtils.getGameList(this@NewsObjectFragment) { AcceleratorUtils.getGameList(this@NewsObjectFragment) {
if (it) { if (it) {
AcceleratorUtils.game?.let { AcceleratorUtils.game?.let {
gameId = it.id
newsViewModel.freshData(position, it.id, page) newsViewModel.freshData(position, it.id, page)
} }
} }
} }
recycle_view?.addOnScrollListener(object : RecyclerView.OnScrollListener() {
override fun onScrollStateChanged(recyclerView: RecyclerView, newState: Int) {
super.onScrollStateChanged(recyclerView, newState)
}
override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
super.onScrolled(recyclerView, dx, dy)
if (isSlideToBottom(recyclerView)) {
newsModel?.let {
if (dataList.size < it.total) {
page++
newsViewModel.freshData(position, gameId, page)
}
}
}
}
})
} }
newsViewModel.newsModel.observe(this, { newsViewModel.newsModel.observe(this, {
deviceList.addAll(it.list) newsModel = it
dataList.addAll(it.list)
recycle_view?.adapter?.notifyDataSetChanged() recycle_view?.adapter?.notifyDataSetChanged()
}) })
} }
protected fun isSlideToBottom(recyclerView: RecyclerView?): Boolean {
if (recyclerView == null) return false
return if (recyclerView.computeVerticalScrollExtent() + recyclerView.computeVerticalScrollOffset() >= recyclerView.computeVerticalScrollRange()) true else false
}
fun getNetVideoBitmap(videoUrl: String?): Bitmap? {
var bitmap: Bitmap? = null
val retriever = MediaMetadataRetriever()
try {
//根据url获取缩略图
retriever.setDataSource(videoUrl, HashMap())
//获得第一帧图片
bitmap = retriever.frameAtTime
} catch (e: IllegalArgumentException) {
e.printStackTrace()
} finally {
retriever.release()
}
return bitmap
}
override fun initListeners() { override fun initListeners() {
} }
fun refresh() { fun refresh() {
recycle_view?.postDelayed({ AcceleratorUtils.game?.let {
AcceleratorUtils.game?.let { gameId = it.id
newsViewModel.freshData(position, it.id, page) page = 1
} newsViewModel.freshData(position, it.id, page)
}, 1000) }
} }
} }
\ No newline at end of file
...@@ -15,6 +15,10 @@ import com.karumi.dexter.listener.multi.MultiplePermissionsListener ...@@ -15,6 +15,10 @@ import com.karumi.dexter.listener.multi.MultiplePermissionsListener
import com.xuexiang.xpage.base.XPageFragment import com.xuexiang.xpage.base.XPageFragment
import com.xuexiang.xutil.app.AppUtils import com.xuexiang.xutil.app.AppUtils
import com.xuexiang.xutil.system.PermissionUtils import com.xuexiang.xutil.system.PermissionUtils
import android.content.Intent
import android.net.Uri
import com.hjq.toast.ToastUtils
import java.lang.Exception
/** /**
...@@ -186,4 +190,26 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb) ...@@ -186,4 +190,26 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
.quickCallJs(callback, AppUtils.getAppVersionName(), AppUtils.getAppVersionCode().toString()) .quickCallJs(callback, AppUtils.getAppVersionName(), AppUtils.getAppVersionCode().toString())
} }
/****************
*
* 发起添加群流程。
* 调用 joinQQGroup(09Gg-vMtnaIfgr-slk1pOkjVIFmjI79U)
*/
@JavascriptInterface
fun joinQQGroup(url: String) {
val intent = Intent()
intent.data =
Uri.parse(url)
// 此Flag可根据具体产品需要自定义,如设置,则在加群界面按返回,返回手Q主界面,不设置,按返回会返回到呼起产品界面 //
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
try {
xPageFragment.startActivity(intent)
} catch (e: Exception) {
// 未安装手Q或安装的版本不支持
ToastUtils.show("未安装手Q或安装的版本不支持")
}
}
} }
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent">
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:id="@+id/recycle_view" android:id="@+id/recycle_view"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"/> android:layout_height="match_parent"/>
......
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout <LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent">
......
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android" <androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/refresh_layout"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="@color/black" android:background="@color/white">
android:orientation="vertical">
<LinearLayout <com.google.android.material.appbar.AppBarLayout
android:id="@+id/appbar"
android:background="@color/white"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="wrap_content"
android:orientation="vertical"> android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<TextView <TextView
android:layout_width="match_parent" app:layout_scrollFlags="scroll|exitUntilCollapsed"
android:layout_height="wrap_content" android:layout_width="match_parent"
android:layout_marginTop="36dp"
android:gravity="center_horizontal"
android:text="地下城与勇士 韩服"
android:textColor="#FFFFFFFF"
android:textSize="16sp" />
<com.xuexiang.xui.widget.layout.XUILinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="16dp"
android:background="@color/white"
android:orientation="vertical"
app:xui_hideRadiusSide="bottom"
app:xui_radius="10dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="21dp"
android:orientation="horizontal">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="20dp" android:background="@mipmap/new_top"
android:orientation="vertical"> android:gravity="center"
android:paddingTop="36dp"
<ImageView android:paddingBottom="16dp"
android:layout_width="48dp" android:text="地下城与勇士 韩服"
android:layout_height="48dp" android:textColor="#FFFFFFFF"
android:layout_gravity="center_horizontal" android:textSize="16sp"
android:background="@mipmap/game_download" /> app:layout_collapseMode="pin" />
<TextView <androidx.recyclerview.widget.RecyclerView
android:layout_width="70dp" app:layout_scrollFlags="scroll|exitUntilCollapsed"
android:layout_height="20dp" android:id="@+id/game_news_list"
android:layout_marginTop="8dp" android:layout_width="match_parent"
android:gravity="center"
android:text="游戏下载"
android:textColor="#FF3B3B3B"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="20dp" android:layout_marginTop="21dp"
android:orientation="vertical"> android:background="@color/white"
android:orientation="horizontal"
app:layout_collapseMode="parallax">
<ImageView
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_gravity="center_horizontal"
android:background="@mipmap/game_group" />
<TextView </androidx.recyclerview.widget.RecyclerView>
android:layout_width="70dp"
android:layout_height="20dp"
android:layout_marginTop="8dp"
android:gravity="center"
android:text="万能宝藏群"
android:textColor="#FF3B3B3B"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout <LinearLayout
android:layout_width="wrap_content" app:layout_scrollFlags="noScroll"
android:layout_height="wrap_content" android:layout_width="match_parent"
android:layout_height="20dp"
android:layout_marginLeft="20dp" android:layout_marginLeft="20dp"
android:orientation="vertical"> android:layout_marginTop="21dp"
android:layout_marginRight="20dp"
app:layout_collapseMode="parallax">
<ImageView <ImageView
android:layout_width="48dp" android:layout_width="17.95dp"
android:layout_height="48dp" android:layout_height="14.6dp"
android:layout_gravity="center_horizontal" android:layout_gravity="center_vertical"
android:background="@mipmap/game_google" /> android:background="@mipmap/icon_notice" />
<TextView <com.xuexiang.xui.widget.textview.MarqueeTextView
android:layout_width="70dp" android:id="@+id/tv_marquee"
android:layout_height="20dp" android:layout_width="299dp"
android:layout_marginTop="8dp" android:layout_height="wrap_content"
android:layout_marginLeft="3dp"
android:gravity="center" android:gravity="center"
android:text="谷歌套件" android:text=""
android:textColor="#FF3B3B3B" android:textColor="#FF1A1A1A"
android:textSize="14sp" /> android:textSize="14sp"
</LinearLayout> app:mtv_isAutoDisplay="true"
</LinearLayout> app:mtv_isAutoFit="true" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="20dp"
android:layout_marginLeft="20dp"
android:layout_marginTop="21dp"
android:layout_marginRight="20dp">
<ImageView </LinearLayout>
android:layout_width="17.95dp"
android:layout_height="14.6dp"
android:layout_gravity="center_vertical"
android:background="@mipmap/icon_notice" />
<com.xuexiang.xui.widget.textview.MarqueeTextView </com.google.android.material.appbar.AppBarLayout>
android:id="@+id/tv_marquee"
android:layout_width="299dp"
android:layout_height="wrap_content"
android:layout_marginLeft="3dp"
android:gravity="center"
android:text=""
android:textColor="#FF1A1A1A"
android:textSize="14sp"
app:mtv_isAutoDisplay="true"
app:mtv_isAutoFit="true" />
</LinearLayout>
<com.google.android.material.tabs.TabLayout <androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/tab_layout" android:layout_width="match_parent"
style="@style/MyTablayoutstyle" android:layout_height="match_parent"
android:layout_width="match_parent" android:orientation="vertical"
android:layout_height="wrap_content" app:layout_behavior="@string/appbar_scrolling_view_behavior">
android:layout_marginTop="5dp"
app:tabBackground="@null"
app:tabRippleColor="@null"/>
<androidx.viewpager2.widget.ViewPager2 <com.google.android.material.tabs.TabLayout
android:id="@+id/view_pager" android:id="@+id/tab_layout"
android:layout_width="match_parent" style="@style/MyTablayoutstyle"
android:layout_height="match_parent" /> android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
app:tabBackground="@null"
app:tabRippleColor="@null" />
</com.xuexiang.xui.widget.layout.XUILinearLayout> <androidx.viewpager2.widget.ViewPager2
</LinearLayout> android:id="@+id/view_pager"
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout> android:layout_width="match_parent"
\ No newline at end of file android:layout_height="match_parent" />
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
\ No newline at end of file
...@@ -70,7 +70,6 @@ ...@@ -70,7 +70,6 @@
android:layout_height="wrap_content"> android:layout_height="wrap_content">
<ImageView <ImageView
android:id="@+id/game_pic_out" android:id="@+id/game_pic_out"
android:layout_width="250dp" android:layout_width="250dp"
...@@ -109,7 +108,7 @@ ...@@ -109,7 +108,7 @@
app:cpv_end_progress="99" app:cpv_end_progress="99"
app:cpv_isFilled="false" app:cpv_isFilled="false"
app:cpv_isTracked="true" app:cpv_isTracked="true"
app:cpv_progress_duration="2000" app:cpv_progress_duration="1500"
app:cpv_progress_textColor="#8BE7FA" app:cpv_progress_textColor="#8BE7FA"
app:cpv_progress_textSize="50sp" app:cpv_progress_textSize="50sp"
app:cpv_progress_textVisibility="false" app:cpv_progress_textVisibility="false"
...@@ -126,35 +125,43 @@ ...@@ -126,35 +125,43 @@
android:layout_centerInParent="true" android:layout_centerInParent="true"
android:background="#77000000" android:background="#77000000"
android:gravity="center" android:gravity="center"
android:visibility="gone"
android:orientation="horizontal" android:orientation="horizontal"
android:visibility="gone"
app:xui_borderColor="@color/transparent" app:xui_borderColor="@color/transparent"
app:xui_outerNormalColor="@color/transparent" app:xui_outerNormalColor="@color/transparent"
app:xui_radius="190dp" app:xui_radius="190dp"
app:xui_showBorderOnlyBeforeL="false"> app:xui_showBorderOnlyBeforeL="false">
<LinearLayout <LinearLayout
android:orientation="horizontal"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content"> android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView <TextView
android:id="@+id/progress" android:id="@+id/progress"
android:text="0"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="0"
android:textColor="#8BE7FA" android:textColor="#8BE7FA"
android:textSize="70sp" android:textSize="70sp" />
/>
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:textColor="#8BE7FA"
android:text="%" android:text="%"
android:textSize="25sp" android:textColor="#8BE7FA"
/> android:textSize="25sp" />
</LinearLayout> </LinearLayout>
</com.xuexiang.xui.widget.layout.XUILinearLayout> </com.xuexiang.xui.widget.layout.XUILinearLayout>
<ImageView
android:id="@+id/game_start"
android:visibility="gone"
android:layout_width="190dp"
android:layout_height="190dp"
android:layout_centerInParent="true"
android:background="@mipmap/game_start_btn" />
<com.xuexiang.xui.widget.layout.XUILinearLayout <com.xuexiang.xui.widget.layout.XUILinearLayout
android:id="@+id/quick_top_toast" android:id="@+id/quick_top_toast"
...@@ -163,8 +170,8 @@ ...@@ -163,8 +170,8 @@
android:layout_centerHorizontal="true" android:layout_centerHorizontal="true"
android:background="#FF151721" android:background="#FF151721"
android:gravity="center" android:gravity="center"
android:visibility="gone"
android:orientation="horizontal" android:orientation="horizontal"
android:visibility="gone"
app:xui_radius="10dp"> app:xui_radius="10dp">
<ImageView <ImageView
...@@ -647,7 +654,7 @@ ...@@ -647,7 +654,7 @@
android:textSize="14sp" /> android:textSize="14sp" />
<com.xuexiang.xui.widget.button.roundbutton.RoundButton <com.xuexiang.xui.widget.button.roundbutton.RoundButton
android:id="@+id/prevent_acc_invalid" android:id="@+id/prevent_acc_invalid"
android:layout_width="70dp" android:layout_width="70dp"
android:layout_height="25dp" android:layout_height="25dp"
android:gravity="center" android:gravity="center"
...@@ -716,14 +723,14 @@ ...@@ -716,14 +723,14 @@
android:textSize="16sp" /> android:textSize="16sp" />
<TextView <TextView
android:visibility="gone"
android:id="@+id/pre_delay1_unit" android:id="@+id/pre_delay1_unit"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="center" android:gravity="center"
android:text="ms" android:text="ms"
android:textColor="#FF94949B" android:textColor="#FF94949B"
android:textSize="12sp" /> android:textSize="12sp"
android:visibility="gone" />
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>
...@@ -765,14 +772,14 @@ ...@@ -765,14 +772,14 @@
android:textSize="16sp" /> android:textSize="16sp" />
<TextView <TextView
android:visibility="gone"
android:id="@+id/net_delay1_unit" android:id="@+id/net_delay1_unit"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="center" android:gravity="center"
android:text="ms" android:text="ms"
android:textColor="#FF94949B" android:textColor="#FF94949B"
android:textSize="12sp" /> android:textSize="12sp"
android:visibility="gone" />
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>
...@@ -815,14 +822,14 @@ ...@@ -815,14 +822,14 @@
android:textSize="16sp" /> android:textSize="16sp" />
<TextView <TextView
android:visibility="gone"
android:id="@+id/net_lost1_unit" android:id="@+id/net_lost1_unit"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="center" android:gravity="center"
android:text="%" android:text="%"
android:textColor="#FF94949B" android:textColor="#FF94949B"
android:textSize="12sp" /> android:textSize="12sp"
android:visibility="gone" />
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>
......
...@@ -2,11 +2,12 @@ ...@@ -2,11 +2,12 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:orientation="vertical"> android:orientation="vertical">
<FrameLayout <FrameLayout
android:layout_marginTop="30dp"
android:id="@+id/common_webview" android:id="@+id/common_webview"
android:layout_marginBottom="50dp"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" /> android:layout_height="match_parent" />
......
...@@ -56,7 +56,8 @@ ...@@ -56,7 +56,8 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="8dp" android:layout_marginTop="8dp"
android:text="DNF合金战士怎么还没出?智慧的引导和奥兹玛怎么进?" android:maxLines="2"
android:ellipsize="end"
android:textColor="#FF000000" android:textColor="#FF000000"
android:textSize="14sp" /> android:textSize="14sp" />
...@@ -65,7 +66,8 @@ ...@@ -65,7 +66,8 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="6dp" android:layout_marginTop="6dp"
android:text="DNF合金战士怎么还没出?智慧的引导和奥兹玛怎么进?智慧的引导和奥兹玛怎么进?智慧的引导和奥兹玛怎么进…" android:maxLines="3"
android:ellipsize="end"
android:textColor="#FF4A4A4A" android:textColor="#FF4A4A4A"
android:textSize="14sp" /> android:textSize="14sp" />
...@@ -76,7 +78,7 @@ ...@@ -76,7 +78,7 @@
android:layout_marginTop="12.65dp" android:layout_marginTop="12.65dp"
android:visibility="gone" /> android:visibility="gone" />
<VideoView <fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard
android:id="@+id/video_view" android:id="@+id/video_view"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="182.5dp" android:layout_height="182.5dp"
...@@ -90,13 +92,14 @@ ...@@ -90,13 +92,14 @@
android:layout_marginBottom="11dp"> android:layout_marginBottom="11dp">
<TextView <TextView
android:id="@+id/pageViews"
android:layout_width="57.5dp" android:layout_width="57.5dp"
android:layout_height="15dp" android:layout_height="15dp"
android:text="1502次浏览"
android:textColor="#FFB4B4B4" android:textColor="#FFB4B4B4"
android:textSize="11sp" /> android:textSize="11sp" />
<TextView <TextView
android:id="@+id/great_num"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignParentRight="true" android:layout_alignParentRight="true"
...@@ -107,6 +110,7 @@ ...@@ -107,6 +110,7 @@
android:textSize="14sp" /> android:textSize="14sp" />
<ImageView <ImageView
android:id="@+id/great_img"
android:layout_width="14dp" android:layout_width="14dp"
android:layout_height="14dp" android:layout_height="14dp"
android:layout_alignParentRight="true" android:layout_alignParentRight="true"
......
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:orientation="vertical">
<ImageView
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_gravity="center_horizontal"
android:background="@mipmap/game_download" />
<TextView
android:layout_width="70dp"
android:layout_height="20dp"
android:layout_marginTop="8dp"
android:gravity="center"
android:text="游戏下载"
android:textColor="#FF3B3B3B"
android:textSize="14sp" />
</LinearLayout>
...@@ -10,6 +10,7 @@ object HttpConfig { ...@@ -10,6 +10,7 @@ object HttpConfig {
* 主页h5 * 主页h5
*/ */
val UI_MAIN_URL = "https://test-cc-tt-front.orangenet.org.cn/#" val UI_MAIN_URL = "https://test-cc-tt-front.orangenet.org.cn/#"
// val UI_MAIN_URL = "http://10.3.0.217:8080/#"
//隐私协议地址 //隐私协议地址
val privacy_url = "http:wwww.baidu.com" val privacy_url = "http:wwww.baidu.com"
......
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2019 by Max Lv <max.c.lv@gmail.com>
Copyright (C) 2019 by Mygod Studio <contact-shadowsocks-android@mygod.be>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
DO NOT EDIT: This file was automagically generated by script.
If you are looking for contributing a translation, read this:
https://discourse.shadowsocks.org/t/poeditor-translation-main-thread/30
-->
<resources>
<string name="quick_toggle">"تغيير"</string>
<string name="remote_dns">"سيرفر ال DNS"</string>
<string name="stat_summary">"ارسل: \t%3$s\t↑\t%1$s
استقبل: \t%4$s\t↓\t%2$s"</string>
<string name="connection_test_testing">"اختبار الاتصال…"</string>
<string name="connection_test_error">"فشل فحص اتصال الانترنت: %s"</string>
<string name="connection_test_fail">"لا يوجد اتصال بالانترنت"</string>
<string name="connection_test_error_status_code">"خطآ رقم: #%d"</string>
<string name="proxy">"السيرفر"</string>
<string name="remote_port">"المنفذ"</string>
<string name="sitekey">"كلمة المرور"</string>
<string name="enc_method">"طريقة التشفير"</string>
</resources>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2019 by Max Lv <max.c.lv@gmail.com>
Copyright (C) 2019 by Mygod Studio <contact-shadowsocks-android@mygod.be>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
DO NOT EDIT: This file was automagically generated by script.
If you are looking for contributing a translation, read this:
https://discourse.shadowsocks.org/t/poeditor-translation-main-thread/30
-->
<resources>
<string name="quick_toggle">"Alternar"</string>
<string name="remote_dns">"DNS Remoto"</string>
<string name="stat_summary">"Enviado: \t\t\t\t\t%3$s\t↑\t%1$s
Recibido: \t%4$s\t↓\t%2$s"</string>
<string name="connection_test_testing">"Probando…"</string>
<string name="connection_test_available">"Éxito: El establecimiento de la comunicación HTTPS tomó %dms"</string>
<string name="connection_test_error">"Fallo al detectar conexión a Internet: %s"</string>
<string name="connection_test_fail">"Internet no disponible"</string>
<string name="connection_test_error_status_code">"Código de error: #%d"</string>
<!-- proxy category -->
<string name="profile_name">"Nombre de Perfil"</string>
<string name="proxy">"Servidor"</string>
<string name="remote_port">"Puerto Remoto"</string>
<string name="sitekey">"Contraseña"</string>
<string name="enc_method">"Método de Cifrado"</string>
<!-- feature category -->
<string name="ipv6">"Ruta IPv6"</string>
<string name="ipv6_summary">"Redireccionar tráfico IPv6 a ruta"</string>
<string name="route_list">"Ruta"</string>
<string name="route_entry_gfwlist">"Lista GFW"</string>
<string name="proxied_apps">"Apps en modo VPN"</string>
<string name="proxied_apps_summary">"Configurar modo VPN para las apps seleccionadas"</string>
<string name="on">"Encendido"</string>
<!-- Fuzzy -->
<string name="bypass_apps">"Modo Bypass"</string>
<string name="auto_connect">"Conexión Automática"</string>
<!-- Fuzzy -->
<string name="auto_connect_summary">"Activar Shadowsocks al iniciar"</string>
<string name="tcp_fastopen_summary_unsupported">"Versión del Núcleo sin soporte: %s &lt; 3.7.1"</string>
<string name="udp_dns">"Enviar DNS sobre UDP"</string>
<!-- notification category -->
<string name="forward_success">"Shadowsocks inició."</string>
<string name="invalid_server">"Nombre de servidor inválido"</string>
<string name="service_failed">"Fallo al conectar al servidor remoto"</string>
<string name="stop">"Detener"</string>
<string name="stopping">"Apagando…"</string>
<string name="reboot_required">"Fallo al iniciar servicio VPN. Puede que tengas que reiniciar tu dispositivo."</string>
<string name="profile_invalid_input">"No se ha encontrado datos de perfil válidos."</string>
<!-- alert category -->
<string name="profile_empty">"Por favor selecciona un perfil"</string>
<string name="proxy_empty">"Proxy/Contraseña no deberían estar vacíos"</string>
<string name="connect">"Conectar"</string>
<!-- menu category -->
<string name="profiles">"Perfiles"</string>
<string name="settings">"Preferencias"</string>
<string name="faq">"FAQ"</string>
<string name="about">"Acerca de"</string>
<string name="edit">"Editar"</string>
<string name="share">"Compartir"</string>
<string name="add_profile">"Agregar Perfil"</string>
<string name="action_apply_all">"Aplicar preferencias a todos los Perfiles"</string>
<string name="action_export">"Exportar a portapapeles"</string>
<string name="action_import">"Importar desde portapapeles"</string>
<string name="action_export_msg">"¡Exportado satisfactoriamente!"</string>
<string name="action_export_err">"Fallo al exportar."</string>
<string name="action_import_msg">"¡Importado satisfactoriamente!"</string>
<string name="action_import_err">"Fallo al importar."</string>
<!-- profile -->
<string name="profile_config">"Configuración de Perfil"</string>
<string name="delete">"Remover"</string>
<string name="delete_confirm_prompt">"¿Estás seguro de querer remover este perfil?"</string>
<!-- Fuzzy -->
<string name="share_qr_nfc">"Código QR/NFC"</string>
<string name="add_profile_dialog">"Agregar este Perfil Shadowsocks?"</string>
<string name="add_profile_methods_scan_qr_code">"Escanear código QR"</string>
<plurals name="removed">
<item quantity="one">"Removido"</item>
<item quantity="other">"%d elementos removidos"</item>
</plurals>
<string name="undo">"Deshacer"</string>
<!-- tasker -->
<string name="toggle_service_state">"Iniciar el servicio"</string>
<string name="start_service_default">"Conectar al servidor actual"</string>
<string name="start_service">"Conectar a %s"</string>
<string name="stop_service">"Cambiar a %s"</string>
<string name="profile_default">"Usar el perfil actual"</string>
<!-- status -->
<string name="sent">"Enviado:"</string>
<string name="received">"Recibido:"</string>
<!-- status -->
<string name="connecting">"Conectando…"</string>
<string name="vpn_connected">"Conectado, presiona para verificar la conexión"</string>
<string name="not_connected">"No conectado"</string>
<!-- acl -->
<string name="custom_rules">"Reglas personalizadas"</string>
<string name="action_add_rule">"Agregar regla(s)…"</string>
<string name="edit_rule">"Editar regla"</string>
<string name="route_entry_all">"Todo"</string>
<!-- plugin -->
<string name="plugin">"Complemento"</string>
<string name="plugin_configure">"Configurar…"</string>
<string name="plugin_disabled">"Deshabilitado"</string>
<string name="plugin_unknown">"Complemento desconocido %s"</string>
<string name="plugin_untrusted">"Precaución: Este complemento no parece venir de una fuente confiable."</string>
<string name="profile_plugin">"Complemento: %s"</string>
<string name="add_profile_scanner_permission_required">"Se requiere permiso de cámara para escanear códigos QR."</string>
<!-- notification category -->
<string name="service_vpn">"Servicio VPN"</string>
<string name="add_profile_methods_manual_settings">"Configuración manual"</string>
<!-- misc -->
<string name="advanced">"Avanzado"</string>
<!-- misc -->
<string name="service_mode">"Modo de servicio"</string>
<string name="service_mode_proxy">"Sólo Proxy"</string>
<string name="service_mode_vpn">"VPN"</string>
<string name="port_proxy">"Puerto proxy SOCKS5"</string>
<string name="port_local_dns">"Puerto DNS local"</string>
<string name="service_proxy">"Servicio Proxy"</string>
<string name="service_transproxy">"Servicio Transproxy"</string>
<string name="vpn_permission_denied">"Permiso denegado al crear servicio VPN"</string>
<string name="direct_boot_aware_summary">"La información del perfil seleccionado será menos protegida"</string>
<string name="action_import_file">"Importar desde archivo…"</string>
<string name="night_mode">"Modo nocturno"</string>
<string name="night_mode_system">"Seguir sistema"</string>
<string name="night_mode_auto">"Auto"</string>
<string name="night_mode_on">"Encendido"</string>
<string name="night_mode_off">"Apagado"</string>
<string name="send_email">"Enviar email"</string>
<string name="action_export_more">"Exportar…"</string>
<string name="action_export_file">"Exportar a archivo…"</string>
<string name="share_over_lan">"Compartir por LAN"</string>
<string name="connection_test_pending">"Verificar conectividad"</string>
<string name="file_manager_missing">"Por favor, instala un explorador de archivos como MiXplorer"</string>
<string name="action_replace_file">"Reemplazar desde archivo…"</string>
</resources>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2019 by Max Lv <max.c.lv@gmail.com>
Copyright (C) 2019 by Mygod Studio <contact-shadowsocks-android@mygod.be>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
DO NOT EDIT: This file was automagically generated by script.
If you are looking for contributing a translation, read this:
https://discourse.shadowsocks.org/t/poeditor-translation-main-thread/30
-->
<resources>
<string name="app_name">"شدوساکس"</string>
<string name="remote_dns">"دی‌ان‌اس سرور"</string>
<string name="connection_test_testing">"در حال آزمایش…"</string>
<string name="connection_test_fail">"ارتباط با اینترنت فراهم نیست"</string>
<!-- proxy category -->
<string name="profile_name">"نام پروفایل"</string>
<string name="proxy">"سرور"</string>
<string name="remote_port">"پورت سرور"</string>
<string name="sitekey">"کلمه عبور"</string>
<string name="enc_method">"طریقه رمزگذاری"</string>
<!-- feature category -->
<string name="ipv6">"مسیر IPv6"</string>
<string name="ipv6_summary">"ترافیک IPv6 را به سرور هدایت کن"</string>
<string name="route_list">"روت"</string>
<string name="route_entry_gfwlist">"فهرست فیلترینگ"</string>
<string name="proxied_apps">"حالت "</string>
<string name="proxied_apps_summary">"تنظیم حالت وی‌پی‌ان برای اپلیکیشن‌های انتخاب شده"</string>
<string name="on">"روشن"</string>
<!-- Fuzzy -->
<string name="bypass_apps">"حالت صرف‌نظر"</string>
<string name="bypass_apps_summary">"این اپلیکیشن‌ها از وی‌پی‌ان استفاده نکنند"</string>
<string name="auto_connect">"وصل‌شدن اتوماتیک"</string>
<!-- Fuzzy -->
<string name="auto_connect_summary">"فعال‌شدن شدوساکس لحظه روشن‌شدن گوشی"</string>
<!-- Fuzzy -->
<string name="udp_dns">"ارسال دی‌ان‌اس"</string>
<!-- Fuzzy -->
<string name="udp_dns_summary">"ارسال کلیه درخواست‌های دی‌ان‌اس به سرور "</string>
<!-- notification category -->
<string name="forward_success">"شدوساکس فعال شد."</string>
<string name="invalid_server">"آدرس سرور نامعتبر است"</string>
<string name="service_failed">"اتصال به سرور ناموفق بود!"</string>
<string name="stop">"غیرفعال‌کردن"</string>
<string name="stopping">"در حال قطع‌کردن اتصال…"</string>
<string name="reboot_required">"راه‌اندازی سرویس وی‌پی‌ان ناموفق بود. شاید مشکل با روشن خاموش کردن دستگاه حل شود."</string>
<string name="profile_invalid_input">"هیچ پروفایل معتبری یافت نشد!"</string>
<!-- alert category -->
<string name="profile_empty">"لطفا یک پروفایل انتخاب کنید."</string>
<string name="proxy_empty">"پروکسی یا کلمه عبور نباید خالی باشند!"</string>
<string name="connect">"اتصال"</string>
<!-- menu category -->
<string name="profiles">"پروفایل‌ها"</string>
<string name="settings">"تنظیمات"</string>
<string name="faq">"سوالات متداول"</string>
<string name="about">"درباره ما"</string>
<string name="edit">"ویرایش"</string>
<string name="share">"به اشتراک گذاری"</string>
<string name="add_profile">"افزودن پروفایل"</string>
<string name="action_apply_all">"اعمال تنظیمات برای همه پروفایل‌ها"</string>
<string name="action_export">"صدور به کلیپ بورد"</string>
<string name="action_import">"ورود از کلیپ بورد"</string>
<string name="action_export_msg">"صدور موفقیت‌آمیز!"</string>
<string name="action_export_err">"صدور ناموفق."</string>
<string name="action_import_msg">"ورود موفقیت‌آمیز"</string>
<string name="action_import_err">"ورود ناموفق."</string>
<!-- profile -->
<string name="profile_config">"تنظیمات پروفایل"</string>
<string name="delete">"حذف"</string>
<string name="delete_confirm_prompt">"آیا مطمئن هستید که می‌خواهید این پروفایل را حذف کنید؟"</string>
<!-- Fuzzy -->
<string name="share_qr_nfc">"NFC یا QR Code"</string>
<string name="add_profile_dialog">"این پروفایل اضافه شود؟"</string>
<string name="add_profile_methods_scan_qr_code">"اسکن‌کردن QR Code"</string>
<string name="undo">"بازگرداندن"</string>
<!-- tasker -->
<string name="toggle_service_state">"فعال‌کردن سرویس"</string>
<string name="start_service_default">"وصل‌شدن به سرور فعلی"</string>
<string name="start_service">"وصل شدن به "</string>
<string name="profile_default">"استفاده از پروفایل فعلی"</string>
<!-- status -->
<string name="sent">"فرستاده‌شده:"</string>
<string name="received">"دریافت‌شده:"</string>
<!-- status -->
<string name="connecting">"در حال اتصال…"</string>
<string name="vpn_connected">"وصل شد. برای بررسی اتصال ضربه (Tap) بزنید."</string>
<string name="not_connected">"اتصال برقرار نیست!"</string>
<!-- acl -->
<string name="custom_rules">"قواعد دلخواه"</string>
<string name="action_add_rule">"اضافه کردن قواعد"</string>
<string name="edit_rule">"ویرایش قواعد"</string>
<string name="route_entry_all">"همه"</string>
<string name="route_entry_bypass_lan">"صرف‌نظر کردن از شبکه داخلی"</string>
<string name="route_entry_bypass_chn">"صرف‌نظر کردن از سایت‌های داخل ایران"</string>
<string name="route_entry_bypass_lan_chn">"صرف‌نظر کردن از شبکه داخلی و سایت‌های داخل ایران"</string>
<string name="route_entry_chinalist">"فهرست ایران"</string>
<string name="plugin_configure">"تنظیم"</string>
<string name="plugin_disabled">"خاموش"</string>
<string name="add_profile_scanner_permission_required">"مجوز دوربین برای اسکن کردن کد QR مورد نیاز است."</string>
<!-- notification category -->
<string name="service_vpn">"سرویس وی‌پی‌ان"</string>
<string name="add_profile_methods_manual_settings">"تنظیمات دستی"</string>
<!-- misc -->
<string name="advanced">"پیشرفته"</string>
<!-- misc -->
<string name="service_mode">"وضعیت سرویس"</string>
<string name="service_mode_proxy">"فقط پروکسی"</string>
<string name="service_mode_vpn">"وی‌پی‌ان"</string>
<string name="service_mode_transproxy">"ترانس‌پروکسی"</string>
<string name="port_proxy">"پورت پروکسی SOCKS5"</string>
<string name="port_local_dns">"پورت دی‌ان‌اس محلی"</string>
<string name="port_transproxy">"پورت ترانس‌پروکسی"</string>
<string name="service_proxy">"سرویس پروکسی"</string>
<string name="service_transproxy">"سرویس ترانس‌پروکسی"</string>
<string name="vpn_permission_denied">"مجوز برای ساخت وی‌پی‌ان فراهم نیست"</string>
<string name="auto_connect_summary_v24">"شدوساکس را از ابتدا فعال کن. توصیه می‌شود که به جای این گزینه از گزینه always-on vpn استفاده شود"</string>
<string name="action_import_file">"ورودی از فایل…"</string>
</resources>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2019 by Max Lv <max.c.lv@gmail.com>
Copyright (C) 2019 by Mygod Studio <contact-shadowsocks-android@mygod.be>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
DO NOT EDIT: This file was automagically generated by script.
If you are looking for contributing a translation, read this:
https://discourse.shadowsocks.org/t/poeditor-translation-main-thread/30
-->
<resources>
<string name="quick_toggle">"Basculer"</string>
<string name="remote_dns">"DNS Distant"</string>
<string name="stat_summary">"Envoyé : \t%3$s\t↑\t%1$s
Reçu : \t\t\t%4$s\t↓\t%2$s"</string>
<string name="connection_test_testing">"Essai…"</string>
<string name="connection_test_available">"Succès : le handshake HTTPS a pris %dms"</string>
<string name="connection_test_error">"Impossible de détecter la connexion Internet :%s"</string>
<string name="connection_test_fail">"Internet Indisponible"</string>
<string name="connection_test_error_status_code">"Code de l'Erreur : #%d"</string>
<!-- proxy category -->
<string name="profile_name">"Nom du Profil"</string>
<string name="proxy">"Serveur"</string>
<string name="remote_port">"Port Distant"</string>
<string name="sitekey">"Mot de passe"</string>
<string name="enc_method">"Méthode d'Encryption"</string>
<!-- feature category -->
<string name="ipv6">"Route IPv6"</string>
<string name="ipv6_summary">"Rediriger le trafic IPv6 vers le serveur distant"</string>
<string name="route_list">"Route"</string>
<string name="route_entry_gfwlist">"Liste GFW"</string>
<string name="proxied_apps">"Mode VPN Apps"</string>
<string name="proxied_apps_summary">"Configurer le mode VPN pour les applications sélectionnées"</string>
<string name="on">"Activé"</string>
<!-- Fuzzy -->
<string name="bypass_apps">"Mode exclusion"</string>
<string name="bypass_apps_summary">"Activer cette option pour exclure les applications sélectionnées"</string>
<string name="auto_connect">"Connection auto"</string>
<!-- Fuzzy -->
<string name="auto_connect_summary">"Activer Shadowsocks au démarrage"</string>
<!-- Fuzzy -->
<string name="tcp_fastopen_summary">"Activer nécessite la permission ROOT"</string>
<string name="tcp_fastopen_summary_unsupported">"Version du noyau non supportée : %s &lt;3.7.1"</string>
<!-- Fuzzy -->
<string name="udp_dns_summary">"Faire suivre toutes les requêtes DNS au serveur distant"</string>
<!-- notification category -->
<string name="forward_success">"Shadowsocks a démarré"</string>
<string name="invalid_server">"Nom de serveur invalide"</string>
<string name="service_failed">"Échec de la connexion au serveur distant"</string>
<string name="stop">"Stopper"</string>
<string name="stopping">"Arrêt en cours…"</string>
<string name="reboot_required">"Impossible de démarrer le service VPN. Vous devrez peut-être redémarrer votre appareil."</string>
<string name="profile_invalid_input">"Pas de donnée de profil valide trouvée."</string>
<!-- alert category -->
<string name="profile_empty">"Veuillez sélectionner un profil"</string>
<string name="proxy_empty">"Le mot de passe/proxy ne doit pas être vide"</string>
<string name="connect">"Connexion"</string>
<!-- menu category -->
<string name="profiles">"Profils"</string>
<string name="settings">"Paramètres"</string>
<string name="about">"À propos"</string>
<string name="edit">"Éditer"</string>
<string name="share">"Partager"</string>
<string name="add_profile">"Ajouter un Profil"</string>
<string name="action_apply_all">"Appliquer les Paramètres à tous les Profils"</string>
<string name="action_export">"Exporter vers le presse-papiers"</string>
<string name="action_import">"Importer depuis le presse-papiers"</string>
<string name="action_export_msg">"Exporté avec succès !"</string>
<string name="action_export_err">"Échec de l'exportation"</string>
<string name="action_import_msg">"Importé avec succès !"</string>
<string name="action_import_err">"Échec de l’importation."</string>
<!-- profile -->
<string name="profile_config">"Config profil"</string>
<string name="delete">"Supprimer"</string>
<string name="delete_confirm_prompt">"Êtes-vous sûr de vouloir supprimer ce profil?"</string>
<!-- Fuzzy -->
<string name="share_qr_nfc">"QR Code/NFC"</string>
<string name="add_profile_dialog">"Ajouter ce profil Shadowsocks?"</string>
<string name="add_profile_methods_scan_qr_code">"Scanner le QR Code"</string>
<plurals name="removed">
<item quantity="one">"Supprimé"</item>
<item quantity="other">"%d éléments supprimés"</item>
</plurals>
<string name="undo">"Annuler"</string>
<!-- tasker -->
<string name="toggle_service_state">"Démarrer le service"</string>
<string name="start_service_default">"Se connecter au serveur courant"</string>
<string name="start_service">"Se connecter à %s"</string>
<string name="stop_service">"Basculer sur %s"</string>
<string name="profile_default">"Utiliser le profil actuel"</string>
<!-- status -->
<string name="sent">"Envoyé :"</string>
<string name="received">"Reçu :"</string>
<!-- status -->
<string name="connecting">"Connexion…"</string>
<string name="vpn_connected">"Connecté, toucher pour vérifier la connexion"</string>
<string name="not_connected">"Non connecté"</string>
<!-- acl -->
<string name="custom_rules">"Règles personnalisées"</string>
<string name="action_add_rule">"Ajouter une/des règle(s)"</string>
<string name="edit_rule">"Modifier une règle"</string>
<string name="route_entry_all">"Toutes"</string>
<string name="route_entry_bypass_lan">"Exclure le LAN"</string>
<string name="route_entry_bypass_chn">"Exclure la Chine continentale"</string>
<string name="route_entry_bypass_lan_chn">"Exclure LAN et Chine continentale"</string>
<string name="acl_rule_templates_generic">"Pattern PCRE sous-réseau ou hôte"</string>
<string name="acl_rule_templates_domain">"Nom de domaine et tous ses noms de sous-domaines"</string>
<string name="plugin_configure">"Configurer…"</string>
<string name="plugin_disabled">"Désactivé"</string>
<string name="plugin_unknown">"Plugin inconnu %s"</string>
<string name="plugin_untrusted">"Attention : ce plugin ne semble pas provenir d'une source fiable reconnue."</string>
<string name="profile_plugin">"Plugin : %s"</string>
<string name="add_profile_scanner_permission_required">"La permission Appareil photo est nécessaire pour scanner le QR code."</string>
<!-- notification category -->
<string name="service_vpn">"Service VPN"</string>
<string name="add_profile_methods_manual_settings">"Paramètres manuels"</string>
<!-- misc -->
<string name="advanced">"Avancé"</string>
<!-- misc -->
<string name="service_mode">"Mode Service"</string>
<string name="service_mode_proxy">"Proxy seul"</string>
<string name="port_proxy">"Port proxy SOCKS5"</string>
<string name="port_local_dns">"Port DNS local"</string>
<string name="port_transproxy">"Port Transproxy"</string>
<string name="service_proxy">"Service Proxy"</string>
<string name="service_transproxy">"Service Transproxy"</string>
<string name="vpn_permission_denied">"Permission de créer un service VPN refusée"</string>
<string name="auto_connect_summary_v24">"Activer Shadowsocks au démarrage. Plutôt recommandé d'utiliser le VPN permanent"</string>
<string name="direct_boot_aware">"Activation-Désactivation sur écran verrouillé"</string>
<string name="direct_boot_aware_summary">"Vos informations de profil sélectionnées seront moins protégées"</string>
<string name="acl_rule_online_config">"URL de config en ligne"</string>
<string name="action_import_file">"Importer depuis un fichier…"</string>
<string name="night_mode">"Mode nuit"</string>
<string name="night_mode_system">"Suivre la config système"</string>
<string name="send_email">"Envoyer un email"</string>
<string name="action_export_more">"Exporter…"</string>
<string name="action_export_file">"Exporter dans un fichier…"</string>
<string name="cleartext_http_warning">"Le trafic HTTP en clair n'est pas sécurisé"</string>
<string name="share_over_lan">"Partager sur le réseau local"</string>
<string name="connection_test_pending">"Vérifier la connectivité"</string>
<string name="file_manager_missing">"Veuillez installer un gestionnaire de fichier tel que MiXplorer"</string>
</resources>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2019 by Max Lv <max.c.lv@gmail.com>
Copyright (C) 2019 by Mygod Studio <contact-shadowsocks-android@mygod.be>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
DO NOT EDIT: This file was automagically generated by script.
If you are looking for contributing a translation, read this:
https://discourse.shadowsocks.org/t/poeditor-translation-main-thread/30
-->
<resources>
<string name="quick_toggle">"ON/OFF"</string>
<string name="remote_dns">"リモートDNS"</string>
<string name="stat_summary">"送信済み: \t%3$s\t↑\t%1$s/s
受信済み: \t%4$s\t↓\t%2$s/s"</string>
<string name="connection_test_testing">"テスト中…"</string>
<!-- Fuzzy -->
<string name="connection_test_available">"成功: %dmsの遅延"</string>
<string name="connection_test_error">"失敗しました:%s"</string>
<string name="connection_test_fail">"インターネット利用不可"</string>
<string name="connection_test_error_status_code">"ステータスコード無効: #%d"</string>
<!-- proxy category -->
<string name="profile_name">"サーバー名"</string>
<string name="proxy">"サーバーアドレス"</string>
<string name="remote_port">"リモートポート"</string>
<string name="sitekey">"パスワード"</string>
<string name="enc_method">"暗号化方式"</string>
<!-- feature category -->
<string name="ipv6">"IPv6 プロキシ"</string>
<string name="ipv6_summary">"リモートサーバーに IPv6 パケットを転送"</string>
<string name="route_list">"プロキシ方式"</string>
<string name="route_entry_gfwlist">"中国本土からアクセス不可なアドレス以外を迂回する"</string>
<string name="proxied_apps">"アプリ別のVPNモードを使用"</string>
<string name="proxied_apps_summary">"アプリ別のVPNモードを設定"</string>
<string name="on">"ON"</string>
<!-- Fuzzy -->
<string name="bypass_apps">"バイパスモード(迂回モード)"</string>
<string name="bypass_apps_summary">"このモードを選択した場合、指定したアプリのパケットはプロキシを経由しない"</string>
<string name="auto_connect">"自動接続"</string>
<!-- Fuzzy -->
<string name="auto_connect_summary">"システム起動時にバックグラウンドで本サービスを開始"</string>
<!-- Fuzzy -->
<string name="tcp_fastopen_summary">"使用するには ROOT 権限が必要"</string>
<string name="tcp_fastopen_summary_unsupported">"ご利用のカーネルバージョンはサポートしておりません:%s &lt; 3.7.1"</string>
<!-- Fuzzy -->
<string name="udp_dns">"DNS 転送"</string>
<!-- Fuzzy -->
<string name="udp_dns_summary">"DNS プロトコルでリモードサーバーにパケットを転送"</string>
<!-- notification category -->
<string name="forward_success">"バックグラウンドでサービスを開始しました"</string>
<string name="invalid_server">"サーバーが無効です"</string>
<string name="service_failed">"リモートサーバーに接続できません"</string>
<string name="stop">"中止"</string>
<string name="stopping">"停止中……"</string>
<string name="vpn_error">"バックグランドサービスの起動に失敗しました:%s"</string>
<string name="reboot_required">"VPN サービスの起動に失敗しました、デバイスの再起動を試みて下さい"</string>
<string name="profile_invalid_input">"有効なプロファイルが見つかりません"</string>
<!-- alert category -->
<string name="profile_empty">"プロファイルを選択して下さい"</string>
<string name="proxy_empty">"サーバアドレスやパスワードの入力が必要です"</string>
<string name="connect">"接続"</string>
<!-- menu category -->
<string name="profiles">"プロファイル"</string>
<string name="settings">"オプション設定"</string>
<string name="faq">"よくある質問"</string>
<string name="about">"本アプリについて"</string>
<string name="edit">"編集"</string>
<string name="share">"共有"</string>
<string name="add_profile">"プロファイルを追加"</string>
<string name="action_apply_all">"設定をすべてのプロファイルに適応する"</string>
<string name="action_export">"クリップボードに出力"</string>
<string name="action_import">"クリップボードからインポート"</string>
<string name="action_export_msg">"クリップボードの出力に成功しました"</string>
<string name="action_export_err">"クリップボードの出力に失敗しました"</string>
<string name="action_import_msg">"インポートに成功しました"</string>
<string name="action_import_err">"インポートに失敗しました"</string>
<!-- profile -->
<string name="profile_config">"プロファイル編集"</string>
<string name="delete">"削除"</string>
<string name="delete_confirm_prompt">"このプロファイルを削除しますか"</string>
<!-- Fuzzy -->
<string name="share_qr_nfc">"QR コード / NFC"</string>
<string name="add_profile_dialog">"Shadowsocks用プロファイルを追加しますか"</string>
<string name="add_profile_methods_scan_qr_code">"QR コードを読み取る"</string>
<plurals name="removed">
<item quantity="other">"削除しました
%d 個のアイテムを削除しました"</item>
</plurals>
<string name="undo">"元に戻す"</string>
<!-- tasker -->
<string name="toggle_service_state">"サービスを開始"</string>
<string name="start_service_default">"現在のサーバーに接続する"</string>
<string name="start_service">"%s に接続"</string>
<string name="stop_service">"%s に切り替え"</string>
<string name="profile_default">"現在のプロファイルを使用する"</string>
<!-- status -->
<string name="sent">"送信済み:"</string>
<string name="received">"受信済み:"</string>
<!-- status -->
<string name="connecting">"接続中…"</string>
<string name="vpn_connected">"接続済み、タップして接続状況をチェック"</string>
<string name="not_connected">"未接続"</string>
<!-- acl -->
<string name="custom_rules">"カスタムルール"</string>
<string name="action_add_rule">"ルールを追加…"</string>
<string name="edit_rule">"ルールを編集"</string>
<string name="route_entry_all">"すべて"</string>
<string name="route_entry_bypass_lan">"LAN アドレスを迂回する"</string>
<string name="route_entry_bypass_chn">"中国本土のアドレスを迂回する"</string>
<string name="route_entry_bypass_lan_chn">"LAN 及び中国本土のアドレスを迂回する"</string>
<string name="route_entry_chinalist">"中国本土のアドレス以外を迂回する"</string>
<string name="acl_rule_templates_generic">"サブネットまたはホスト名のPCREパターン"</string>
<string name="acl_rule_templates_domain">"ドメイン及び全てのサブドメイン"</string>
<!-- plugin -->
<string name="plugin">"プラグイン"</string>
<string name="plugin_configure">"設定…"</string>
<string name="plugin_disabled">"無効"</string>
<string name="plugin_unknown">"不明なプラグイン %s"</string>
<string name="plugin_untrusted">"警告:このプラグインは信頼されていないソースからの可能性があります"</string>
<string name="profile_plugin">"プラグイン: %s"</string>
<string name="add_profile_scanner_permission_required">"QRコードをスキャンするにはカメラ権限が必要です。"</string>
<!-- notification category -->
<string name="service_vpn">"VPNサービス"</string>
<string name="add_profile_methods_manual_settings">"手動設定"</string>
<!-- misc -->
<string name="advanced">"アドバンス"</string>
<!-- misc -->
<string name="service_mode">"サービスモード"</string>
<string name="service_mode_proxy">"プロキシのみ"</string>
<string name="service_mode_transproxy">"トランスプロキシ"</string>
<string name="port_proxy">"SOCKS5プロキシポート"</string>
<string name="port_local_dns">"ローカルDNSポート"</string>
<string name="port_transproxy">"トランスプロキシポート"</string>
<string name="service_proxy">"プロキシサービス"</string>
<string name="service_transproxy">"トランスプロキシサービス"</string>
<string name="vpn_permission_denied">"VPNサービス作成のアクセス許可が拒否されました"</string>
<string name="auto_connect_summary_v24">"起動時にShadowsockを有効。 VPN常時接続の使用をお勧めします"</string>
<string name="direct_boot_aware">"ロック画面の切り替えを許可する"</string>
<string name="direct_boot_aware_summary">"選択されたプロファイル情報はより少ない保護を受けることになります"</string>
<string name="acl_rule_online_config">"オンライン設定のURL"</string>
<string name="action_import_file">"ファイルからのインポート"</string>
<string name="night_mode">"夜間モード"</string>
<string name="night_mode_system">"システムに基づく"</string>
<string name="night_mode_auto">"オート"</string>
<string name="night_mode_on">"開く"</string>
<string name="night_mode_off">"閉じる"</string>
<string name="send_email">"電子メール送信"</string>
<string name="action_export_more">"エクスポート"</string>
<string name="action_export_file">"ファイルへエクスポート"</string>
<string name="cleartext_http_warning">"クリアテキスト(平文)通信は安全ではありません"</string>
<string name="share_over_lan">"LAN経由でシェア"</string>
<string name="connection_test_pending">"接続チェック中"</string>
<string name="file_manager_missing">"ファイルマネージャーをインストールしてください(MiXplorerなど)"</string>
<string name="tcp_fastopen_failure">"切り替え失敗"</string>
<string name="udp_fallback">"UDPフォールバック"</string>
<string name="action_replace_file">"ファイルから置き換え"</string>
<string name="off">"オフ"</string>
<string name="proxied_apps_mode">"モード"</string>
<string name="metered">"従量制提示"</string>
<string name="metered_summary">"VPNは従量制であることをシステムに知らせる"</string>
<plurals name="hosts_summary">
<item quantity="other">"設定された%dホスト名"</item>
</plurals>
<!-- subscriptions -->
<string name="subscriptions">"購読する"</string>
<string name="add_subscription">"サブスクリプションを追加"</string>
<string name="edit_subscription">"サブスクリプションを編集"</string>
<string name="update_subscription">"サブスクリプションを更新"</string>
<string name="service_subscription">"サブスクリプションサービス"</string>
<string name="service_subscription_working">"サブスクリプションの更新(%d / %d)"</string>
<string name="service_subscription_finishing">"サブスクリプション更新"</string>
</resources>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2019 by Max Lv <max.c.lv@gmail.com>
Copyright (C) 2019 by Mygod Studio <contact-shadowsocks-android@mygod.be>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
DO NOT EDIT: This file was automagically generated by script.
If you are looking for contributing a translation, read this:
https://discourse.shadowsocks.org/t/poeditor-translation-main-thread/30
-->
<resources>
<string name="quick_toggle">"켜기/끄기"</string>
<string name="remote_dns">"원격 DNS"</string>
<string name="stat_summary">"송신: \t%3$s\t↑\t%1$s/s
수신: \t%4$s\t↓\t%2$s/s"</string>
<string name="connection_test_testing">"검사 중…"</string>
<string name="connection_test_error">"인터넷 연결을 찾을 수 없습니다: %s"</string>
<string name="connection_test_fail">"인터넷에 연결할 수 없습니다"</string>
<string name="connection_test_error_status_code">"오류 코드: #%d"</string>
<!-- proxy category -->
<string name="profile_name">"프로필 이름"</string>
<string name="proxy">"서버 주소"</string>
<string name="remote_port">"원격 포트"</string>
<string name="sitekey">"비밀번호"</string>
<string name="enc_method">"암호화 방법"</string>
<!-- feature category -->
<string name="ipv6">"IPv6 라우팅"</string>
<string name="ipv6_summary">"IPv6 트래픽도 원격으로 리다이렉트 합니다"</string>
<string name="route_list">"라우팅 대상"</string>
<string name="route_entry_gfwlist">"GFW 리스트"</string>
<!-- Fuzzy -->
<string name="proxied_apps">"원하는 앱만 프락시 적용하기"</string>
<string name="proxied_apps_summary">"선택한 앱에만 프락시를 적용합니다"</string>
<string name="on">"활성화"</string>
<!-- Fuzzy -->
<string name="bypass_apps">"선택된 앱들만 프록시 적용 제외하기"</string>
<string name="bypass_apps_summary">"이 옵션을 활성화하면 선택된 앱들은 프락시를 사용하지 않습니다"</string>
<string name="auto_connect">"자동 접속"</string>
<!-- Fuzzy -->
<string name="auto_connect_summary">"장치가 켜질 때 Shadowsocks를 자동으로 활성화합니다"</string>
<!-- Fuzzy -->
<string name="tcp_fastopen_summary">"루트 권한이 필요합니다"</string>
<string name="tcp_fastopen_summary_unsupported">"지원하지 않는 버전의 커널입니다: %s &lt; 3.7.1"</string>
<!-- Fuzzy -->
<string name="udp_dns">"DNS 포워딩"</string>
<!-- Fuzzy -->
<string name="udp_dns_summary">"모든 DNS 요청을 외부로 포워딩 합니다"</string>
<!-- notification category -->
<string name="forward_success">"Shadowsocks가 시작되었습니다"</string>
<string name="invalid_server">"잘못된 서버 이름입니다"</string>
<string name="service_failed">"원격 서버에 접속하는 데 실패했습니다"</string>
<string name="stop">"중지"</string>
<string name="stopping">"종료 중…"</string>
<string name="reboot_required">"VPN 서비스를 시작하는 데 실패했습니다. 장치를 재시작해 보세요."</string>
<string name="profile_invalid_input">"올바른 프로필 데이터를 찾을 수 없습니다"</string>
<!-- alert category -->
<string name="profile_empty">"프로필을 선택해 주세요"</string>
<string name="proxy_empty">"서버 주소와 비밀번호는 반드시 입력해야 합니다"</string>
<string name="connect">"접속"</string>
<!-- menu category -->
<string name="profiles">"프로필"</string>
<string name="settings">"설정"</string>
<string name="faq">"자주 묻는 질문"</string>
<string name="about">"이 앱에 대하여"</string>
<string name="edit">"수정"</string>
<string name="share">"공유"</string>
<string name="add_profile">"프로필 추가"</string>
<string name="action_apply_all">"설정을 모든 프로필에 적용"</string>
<string name="action_export">"클립보드로 내보내기"</string>
<string name="action_import">"클립보드에서 불러오기"</string>
<string name="action_export_msg">"성공적으로 내보냈습니다"</string>
<string name="action_export_err">"내보내기에 실패했습니다"</string>
<string name="action_import_msg">"성공적으로 불러왔습니다"</string>
<string name="action_import_err">"불러오는 데 실패했습니다"</string>
<!-- profile -->
<string name="profile_config">"프로필 설정"</string>
<string name="delete">"삭제"</string>
<string name="delete_confirm_prompt">"정말 이 프로필을 삭제하시겠습니까?"</string>
<!-- Fuzzy -->
<string name="share_qr_nfc">"QR 코드/NFC"</string>
<string name="add_profile_dialog">"이 Shadowsocks 프로필을 추가하시겠습니까?"</string>
<string name="add_profile_methods_scan_qr_code">"QR 코드 읽기"</string>
<plurals name="removed">
<item quantity="other">"삭제했습니다"</item>
</plurals>
<string name="undo">"실행 취소"</string>
<!-- tasker -->
<string name="toggle_service_state">"서비스 시작"</string>
<string name="start_service_default">"현재 서버에 연결"</string>
<string name="start_service">"%s로 연결"</string>
<string name="stop_service">"%s로 바꾸기"</string>
<string name="profile_default">"현재 프로필 사용"</string>
<!-- status -->
<string name="sent">"송신:"</string>
<string name="received">"수신:"</string>
<!-- status -->
<string name="connecting">"연결 중…"</string>
<string name="vpn_connected">"연결 완료. 탭 하면 연결 상태를 검사합니다."</string>
<string name="not_connected">"연결되지 않음"</string>
<!-- acl -->
<string name="custom_rules">"사용자 정의 규칙"</string>
<string name="acl_rule_templates_generic">"서브넷 혹은 호스트 이름 PCRE 패턴"</string>
<!-- plugin -->
<string name="plugin">"플러그인"</string>
<string name="plugin_configure">"플러그인 설정…"</string>
<string name="plugin_disabled">"비활성화 됨"</string>
<string name="plugin_unknown">"알 수 없는 플러그인: %s"</string>
<string name="plugin_untrusted">"경고: 이 플러그인은 신뢰할 수 있는 출처에서 온 것이 아닌 것 같습니다"</string>
<string name="profile_plugin">"플러그인: %s"</string>
<string name="add_profile_scanner_permission_required">"QR 코드를 읽어 들이려면 카메라 권한이 필요합니다"</string>
</resources>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2019 by Max Lv <max.c.lv@gmail.com>
Copyright (C) 2019 by Mygod Studio <contact-shadowsocks-android@mygod.be>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
DO NOT EDIT: This file was automagically generated by script.
If you are looking for contributing a translation, read this:
https://discourse.shadowsocks.org/t/poeditor-translation-main-thread/30
-->
<resources>
<string name="quick_toggle">"Подключение"</string>
<string name="remote_dns">"Удалённый DNS"</string>
<string name="stat_summary">"Отправлено: \t%3$s\t↑\t%1$s
Получено: \t\t\t%4$s\t↓\t%2$s"</string>
<string name="connection_test_testing">"Проверка…"</string>
<string name="connection_test_available">"Успешно: рукопожатие HTTPS заняло %dмс"</string>
<string name="connection_test_error">"Сбой проверки интернет-соединения: %s"</string>
<string name="connection_test_fail">"Интернет недоступен"</string>
<string name="connection_test_error_status_code">"Код ошибки: #%d"</string>
<!-- proxy category -->
<string name="profile_name">"Имя профиля"</string>
<string name="proxy">"Сервер"</string>
<string name="remote_port">"Удалённый порт"</string>
<string name="sitekey">"Пароль"</string>
<string name="enc_method">"Метод шифрования"</string>
<!-- feature category -->
<string name="ipv6">"IPv6 Маршрут"</string>
<string name="ipv6_summary">"Перенаправлять трафик IPv6 на удалённый сервер"</string>
<string name="route_list">"Маршрут"</string>
<string name="route_entry_gfwlist">"Список GFW"</string>
<string name="proxied_apps">"Режим VPN для выбранных приложений"</string>
<string name="proxied_apps_summary">"Выбрать приложения, для которых нужно использовать режим VPN"</string>
<string name="on">"Вкл"</string>
<string name="bypass_apps">"В обход прокси"</string>
<string name="bypass_apps_summary">"Включите эту опцию для работы выбранных приложений в обход прокси"</string>
<string name="auto_connect">"Авто-подключение"</string>
<!-- Fuzzy -->
<string name="auto_connect_summary">"Запускать Shadowsocks при включении"</string>
<string name="tcp_fastopen_summary">"Переключение может запрашивать ROOT права"</string>
<string name="tcp_fastopen_summary_unsupported">"Неподдерживаемая версия ядра: %s &lt; 3.7.1"</string>
<string name="udp_dns">"Отправить DNS-запросы через UDP"</string>
<string name="udp_dns_summary">"Требоваться перенаправление UDP на удаленном сервере"</string>
<!-- notification category -->
<string name="forward_success">"Shadowsocks запущен."</string>
<string name="invalid_server">"Неправильное имя сервера"</string>
<string name="service_failed">"Ошибка при подключении к удалённому серверу"</string>
<string name="stop">"Остановить"</string>
<string name="stopping">"Останавливается…"</string>
<string name="reboot_required">"Не удалось запустить службу VPN. Возможно, требуется перезагрузить ваше устройство."</string>
<string name="profile_invalid_input">"Не найдено действительных данных профиля."</string>
<!-- alert category -->
<string name="profile_empty">"Пожалуйста, выберите профиль"</string>
<string name="proxy_empty">"Прокси/Пароль не должны быть пустыми"</string>
<string name="connect">"Подключить"</string>
<!-- menu category -->
<string name="profiles">"Профили"</string>
<string name="settings">"Настройки"</string>
<string name="faq">"ЧаВо"</string>
<string name="faq_url">"https://github.com/shadowsocks/shadowsocks-android/blob/master/.github/faq.ru.md"</string>
<string name="about">"О приложении"</string>
<string name="about_title">"Shadowsocks %s"</string>
<string name="edit">"Изменить"</string>
<string name="share">"Поделиться"</string>
<string name="add_profile">"Добавить профиль"</string>
<string name="action_apply_all">"Применить настройки для всех профилей"</string>
<string name="action_export">"Экспортировать в буфер обмена"</string>
<string name="action_import">"Импортировать из буфера обмена"</string>
<string name="action_export_msg">"Успешный экспорт!"</string>
<string name="action_export_err">"Сбой экспорта."</string>
<string name="action_import_msg">"Успешный импорт!"</string>
<string name="action_import_err">"Сбой импорта."</string>
<!-- profile -->
<string name="profile_config">"Настройка профиля"</string>
<string name="delete">"Удалить"</string>
<string name="delete_confirm_prompt">"Вы уверены, что хотите удалить этот профиль?"</string>
<!-- Fuzzy -->
<string name="share_qr_nfc">"QR-код/NFC"</string>
<string name="add_profile_dialog">"Добавить этот профиль Shadowsocks?"</string>
<string name="add_profile_methods_scan_qr_code">"Сканировать QR-код"</string>
<plurals name="removed">
<item quantity="one">"Удалено %d элементов"</item>
<item quantity="few">"Удалено %d элемента"</item>
<item quantity="many">"Удалено %d элементов"</item>
<item quantity="other">"Удалено %d элементов"</item>
</plurals>
<string name="undo">"Вернуть"</string>
<!-- tasker -->
<string name="toggle_service_state">"Запустить службу"</string>
<string name="start_service_default">"Подключиться к текущему серверу"</string>
<string name="start_service">"Подключиться к %s"</string>
<string name="stop_service">"Переключить на %s"</string>
<string name="profile_default">"Использовать текущий профиль"</string>
<!-- status -->
<string name="sent">"Отправлено:"</string>
<string name="received">"Получено:"</string>
<!-- status -->
<string name="connecting">"Соединение…"</string>
<string name="vpn_connected">"Подключено, нажмите для проверки соединения"</string>
<string name="not_connected">"Не подключено"</string>
<!-- acl -->
<string name="custom_rules">"Пользовательские правила"</string>
<string name="action_add_rule">"Добавить правило…"</string>
<string name="edit_rule">"Редактировать правило"</string>
<string name="route_entry_all">"Все"</string>
<string name="route_entry_bypass_lan">"Все, кроме LAN"</string>
<string name="route_entry_bypass_chn">"Все, кроме Китая"</string>
<string name="route_entry_bypass_lan_chn">"Все, кроме LAN и Китая"</string>
<string name="route_entry_chinalist">"Список Китай"</string>
<string name="acl_rule_templates_generic">"Подсеть или имя хоста, записанное регулярным выражением (PCRE)"</string>
<string name="acl_rule_templates_domain">"Доменное имя и все его поддомены"</string>
<!-- plugin -->
<string name="plugin">"Плагин"</string>
<string name="plugin_configure">"Настроить…"</string>
<string name="plugin_disabled">"Отключён"</string>
<string name="plugin_unknown">"Неизвестный плагин %s"</string>
<string name="plugin_untrusted">"Предупреждение: этот плагин получен из недоверенного источника."</string>
<string name="profile_plugin">"Плагин: %s"</string>
<string name="add_profile_scanner_permission_required">"Разрешение камеры требуется для сканирования QR код."</string>
<!-- notification category -->
<string name="service_vpn">"Служба VPN"</string>
<string name="add_profile_methods_manual_settings">"Ручные настройки"</string>
<!-- misc -->
<string name="advanced">"Дополнительно"</string>
<!-- misc -->
<string name="service_mode">"Режим"</string>
<string name="service_mode_proxy">"Только прокси"</string>
<string name="service_mode_transproxy">"Прозрачный прокси"</string>
<string name="port_proxy">"Порт SOCKS5 прокси"</string>
<string name="port_local_dns">"Локальный порт DNS"</string>
<string name="port_transproxy">"Порт прозрачного прокси"</string>
<string name="service_proxy">"Служба прокси"</string>
<string name="service_transproxy">"Служба прозрачный прокси"</string>
<string name="vpn_permission_denied">"Нет разрешения на создание VPN соединения"</string>
<string name="auto_connect_summary_v24">"Включить Shadowsocks во время запуска. Лучше использовать режим постоянной VPN."</string>
<string name="speed">"%s/с"</string>
<string name="direct_boot_aware">"Разрешить переключение на экране блокировки"</string>
<string name="direct_boot_aware_summary">"Данные в выбранном профиле будут хуже защищены"</string>
<string name="acl_rule_online_config">"URL конфигурации"</string>
<string name="action_import_file">"Импортировать из файла…"</string>
<string name="night_mode">"Ночной режим"</string>
<string name="night_mode_system">"Как в системе"</string>
<string name="night_mode_auto">"Авто"</string>
<string name="night_mode_on">"Вкл"</string>
<string name="night_mode_off">"Выкл"</string>
<string name="send_email">"Отправить письмо"</string>
<string name="action_export_more">"Экспорт…"</string>
<string name="action_export_file">"Экспорт в файл…"</string>
<string name="cleartext_http_warning">"Текстовый трафик HTTP не защищён"</string>
<string name="share_over_lan">"Поделиться через LAN"</string>
<string name="connection_test_pending">"Проверить подключение"</string>
<string name="file_manager_missing">"Установите файловый менеджер"</string>
<string name="tcp_fastopen_failure">"Не удалось переключить"</string>
<string name="udp_fallback">"Возврат к UDP"</string>
<string name="action_replace_file">"Заменить из файла…"</string>
<string name="off">"Выкл"</string>
<string name="proxied_apps_mode">"Режим"</string>
<string name="metered">"Лимитное соединение"</string>
<string name="metered_summary">"Сообщить системе, что это не безлимитное подключение"</string>
</resources>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2019 by Max Lv <max.c.lv@gmail.com>
Copyright (C) 2019 by Mygod Studio <contact-shadowsocks-android@mygod.be>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
DO NOT EDIT: This file was automagically generated by script.
If you are looking for contributing a translation, read this:
https://discourse.shadowsocks.org/t/poeditor-translation-main-thread/30
-->
<resources>
<string name="quick_toggle">"Aç/Kapa"</string>
<string name="remote_dns">"Uzaktan DNS"</string>
<string name="stat_summary">"Yüklendi: \t\t\t\t\t%3$s\t↑\t%1$s
İndirildi: \t%4$s\t↓\t%2$s"</string>
<string name="connection_test_testing">"Test ediliyor…"</string>
<string name="connection_test_error">"İnternet bağlantısı bulunamadı: %s"</string>
<string name="connection_test_fail">"İnternet Bağlantısı Bulunamadı"</string>
<string name="connection_test_error_status_code">"Hata kodu: #%d"</string>
<!-- proxy category -->
<string name="profile_name">"Profil İsmi"</string>
<string name="proxy">"Sunucu"</string>
<string name="remote_port">"Uzaktan Port"</string>
<string name="sitekey">"Şifre"</string>
<string name="enc_method">"Şifreleme Methodu"</string>
<string name="ipv6_summary">"IPv6 trafiğini remote'a yönlendir"</string>
<string name="route_list">"Rota"</string>
<string name="route_entry_gfwlist">"GFW Listesi"</string>
<string name="proxied_apps">"Uygulamalar VPN modu"</string>
<string name="proxied_apps_summary">"Seçili uygulamalar için VPN'i yapılandır"</string>
<string name="on">"Açık"</string>
<!-- Fuzzy -->
<string name="bypass_apps">"Bypass Modu"</string>
<string name="bypass_apps_summary">"Seçili uygulamaları bypass etmek için bu seçeneği açın"</string>
<string name="auto_connect">"Otomatik Bağlan"</string>
<!-- Fuzzy -->
<string name="auto_connect_summary">"Shadowsocks'ı cihazı başlatırken aç"</string>
<!-- Fuzzy -->
<string name="tcp_fastopen_summary">"Açıp kapamak için ROOT yetkisi gerekiyor"</string>
<string name="tcp_fastopen_summary_unsupported">"Desteklenmeyen kernel sürümü: %s &lt; 3.7.1"</string>
<!-- Fuzzy -->
<string name="udp_dns">"DNS yönlendirme"</string>
<!-- Fuzzy -->
<string name="udp_dns_summary">"Tüm DNS isteklerini remote'a yönlendir"</string>
<!-- notification category -->
<string name="forward_success">"Shadowsocks başlatıldı."</string>
<string name="invalid_server">"Geçersiz sunucu ismi"</string>
<string name="service_failed">"Remote sunucuya bağlanma hatası"</string>
<string name="stop">"Dur"</string>
<string name="stopping">"Kapatılıyor…"</string>
<string name="reboot_required">"VPN servisi başlatılırken hata. Cihazınızı yeniden başlatmanız gerekebilir."</string>
<string name="profile_invalid_input">"Geçerli profil verisi bulunamadı."</string>
<!-- alert category -->
<string name="profile_empty">"Lütfen profil seçiniz"</string>
<string name="proxy_empty">"Proxy/Şifre alanları boş olmamalı"</string>
<string name="connect">"Bağlan"</string>
<!-- menu category -->
<string name="profiles">"Profiller"</string>
<string name="settings">"Ayarlar"</string>
<string name="faq">"SSS"</string>
<string name="about">"Hakkında"</string>
<string name="edit">"Düzenle"</string>
<string name="share">"Paylaş"</string>
<string name="add_profile">"Profil Ekle"</string>
<string name="action_apply_all">"Ayarları tüm profillere uygula"</string>
<string name="action_export">"Clipboarda ekle"</string>
<string name="action_import">"Clipboarddan al"</string>
<string name="action_export_msg">"Ekleme başarılı!"</string>
<string name="action_export_err">"Ekleme başarısız."</string>
<string name="action_import_msg">"Alım başarılı!"</string>
<string name="action_import_err">"Alım başarısız."</string>
<!-- profile -->
<string name="profile_config">"Profil ayarları"</string>
<string name="delete">"Kaldır"</string>
<string name="delete_confirm_prompt">"Bu profili kaldırmak istediğinize emin misiniz?"</string>
<!-- Fuzzy -->
<string name="share_qr_nfc">"QR kodu/NFC"</string>
<string name="add_profile_dialog">"Bu Shadowsocks Profilini ekle?"</string>
<string name="add_profile_methods_scan_qr_code">"QR kodu tarat"</string>
<plurals name="removed">
<item quantity="one">"Kaldırıldı"</item>
<item quantity="other">"%d nesne kaldırıldı"</item>
</plurals>
<string name="undo">"Geri al"</string>
<!-- tasker -->
<string name="toggle_service_state">"Servisi başlat"</string>
<string name="start_service_default">"Şu anki sunucuya bağlan"</string>
<string name="start_service">"%s 'a bağlan"</string>
<string name="stop_service">"%s 'a çevir"</string>
<string name="profile_default">"Şu anki profili kullan"</string>
<!-- status -->
<string name="sent">"Gönderildi:"</string>
<string name="received">"Alındı:"</string>
<!-- status -->
<string name="connecting">"Bağlanılıyor…"</string>
<string name="vpn_connected">"Bağlandı, test etmek için tıklayın"</string>
<string name="not_connected">"Bağlı değil"</string>
<!-- acl -->
<string name="custom_rules">"Kişisel kurallar"</string>
<string name="action_add_rule">"Kural(lar) ekle…"</string>
<string name="edit_rule">"Kuralları düzenle"</string>
<string name="route_entry_all">"Hepsi"</string>
<string name="route_entry_bypass_lan">"LAN bypassla"</string>
<string name="route_entry_bypass_chn">"Çin Anakara'sını bypassla"</string>
<string name="route_entry_bypass_lan_chn">"Lan ve Çin Anakarası'nı bypassla"</string>
<string name="route_entry_chinalist">"Çin lıstesı"</string>
<string name="acl_rule_templates_generic">"Subnet veya Sunucu Adı PCRE düzeni"</string>
<string name="acl_rule_templates_domain">"Domain ve alt domain isimleri"</string>
<!-- plugin -->
<string name="plugin">"Eklenti"</string>
<string name="plugin_configure">"Ayarla…"</string>
<string name="plugin_disabled">"Kapalı"</string>
<string name="plugin_unknown">"Bilinmeyen eklenti %s"</string>
<string name="plugin_untrusted">"Dikkat: Bu eklenti bilinen bir kaynaktan değil."</string>
<string name="profile_plugin">"Eklenti: %s"</string>
<string name="add_profile_scanner_permission_required">"QR kodu okumak için kamera izni gerekli."</string>
<!-- notification category -->
<string name="service_vpn">"VPN Servisi"</string>
<string name="add_profile_methods_manual_settings">"Manuel Ayarlar"</string>
<!-- misc -->
<string name="advanced">"Gelişmiş"</string>
<!-- misc -->
<string name="service_mode">"Servis modu"</string>
<string name="service_mode_proxy">"Sadece proxy"</string>
<string name="port_proxy">"SOCKS5 proxy portu"</string>
<string name="port_local_dns">"Yerel DNS portu"</string>
<string name="port_transproxy">"Transproxy portu"</string>
<string name="service_proxy">"Proxy Servisi"</string>
<string name="service_transproxy">"Transproxy Servisi"</string>
<string name="vpn_permission_denied">"VPN servisi yaratma isteği reddedildi"</string>
<string name="auto_connect_summary_v24">"Shadowsockı cihazla beraber başlat. Bunun yerine her zaman açık VPN kullanılması tavsiye edilirö"</string>
<string name="direct_boot_aware">"Ekran kitliyken açıp kapamaya izin ver."</string>
<string name="direct_boot_aware_summary">"Seçili profil bilginiz daha az korunacak."</string>
<string name="acl_rule_online_config">"Online ayarlar URL'i"</string>
<string name="action_import_file">"Dosyadan al…"</string>
<string name="night_mode">"Gece modu"</string>
<string name="night_mode_system">"Takip sistemi"</string>
<string name="night_mode_auto">"Oto"</string>
<string name="night_mode_on">"Açık"</string>
<string name="night_mode_off">"Kapalı"</string>
</resources>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2019 by Max Lv <max.c.lv@gmail.com>
Copyright (C) 2019 by Mygod Studio <contact-shadowsocks-android@mygod.be>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
DO NOT EDIT: This file was automagically generated by script.
If you are looking for contributing a translation, read this:
https://discourse.shadowsocks.org/t/poeditor-translation-main-thread/30
-->
<resources>
<string name="app_name">"影梭"</string>
<string name="quick_toggle">"切換"</string>
<string name="remote_dns">"遠程 DNS"</string>
<string name="stat_summary">"傳送: \t%3$s\t↑\t%1$s/s
接收: \t%4$s\t↓\t%2$s/s"</string>
<string name="connection_test_testing">"測試中……"</string>
<string name="connection_test_available">"成功: HTTPS 握手延遲 %d 毫秒"</string>
<string name="connection_test_error">"偵測出網際網路連線失敗: %s"</string>
<string name="connection_test_fail">"無法使用網際網路"</string>
<string name="connection_test_error_status_code">"錯誤碼: (#%d)"</string>
<!-- proxy category -->
<string name="profile_name">"設定檔名稱"</string>
<string name="proxy">"伺服器"</string>
<string name="remote_port">"遠端連接埠"</string>
<string name="sitekey">"密碼"</string>
<string name="enc_method">"加密方法"</string>
<!-- feature category -->
<string name="ipv6">"IPv6 路由"</string>
<string name="ipv6_summary">"向遠端重新導向 IPv6 流量"</string>
<string name="route_list">"路由"</string>
<string name="route_entry_gfwlist">"GFW List"</string>
<string name="proxied_apps">"個別應用程式的 VPN"</string>
<string name="proxied_apps_summary">"為已選擇的應用程式設定 VPN"</string>
<string name="on">"開"</string>
<!-- Fuzzy -->
<string name="bypass_apps">"略過模式"</string>
<string name="bypass_apps_summary">"啟用此選項,會略過已選擇的應用程式"</string>
<string name="auto_connect">"自動連線"</string>
<!-- Fuzzy -->
<string name="auto_connect_summary">"在裝置啟動時啟用 Shadowsocks"</string>
<!-- Fuzzy -->
<string name="tcp_fastopen_summary">"切換需要 ROOT 權限"</string>
<string name="tcp_fastopen_summary_unsupported">"不支援的核心版本:%s &lt; 3.7.1"</string>
<!-- Fuzzy -->
<string name="udp_dns">"DNS 轉送"</string>
<!-- Fuzzy -->
<string name="udp_dns_summary">"使用 UDP 向遠端轉送 DNS 封包"</string>
<!-- notification category -->
<string name="forward_success">"Shadowsocks 已啟動。"</string>
<string name="invalid_server">"伺服器名稱無效"</string>
<string name="service_failed">"連線至遠端伺服器失敗"</string>
<string name="stop">"停止"</string>
<string name="stopping">"關閉中…"</string>
<string name="vpn_error">"後台服務啟動失敗:%s"</string>
<string name="reboot_required">"VPN 服務啟動失敗。您或許需要重新啟動您的裝置。"</string>
<string name="profile_invalid_input">"未找到有效的設定檔資料。"</string>
<!-- alert category -->
<string name="profile_empty">"請選擇設定檔"</string>
<string name="proxy_empty">"Proxy 或密碼不可以空白"</string>
<string name="connect">"連線"</string>
<!-- menu category -->
<string name="profiles">"設定檔"</string>
<string name="settings">"設定"</string>
<string name="faq">"常見問題"</string>
<string name="about">"關於"</string>
<string name="about_title">"Shadowsocks %s"</string>
<string name="edit">"編輯"</string>
<string name="share">"分享"</string>
<string name="add_profile">"新增設定檔"</string>
<string name="action_apply_all">"套用設定至所有設定檔"</string>
<string name="action_export">"匯出至剪貼簿"</string>
<string name="action_import">"從剪貼簿匯入"</string>
<string name="action_export_msg">"成功匯出!"</string>
<string name="action_export_err">"匯出失敗。"</string>
<string name="action_import_msg">"成功匯入!"</string>
<string name="action_import_err">"匯入失敗。"</string>
<!-- profile -->
<string name="profile_config">"設定檔設定"</string>
<string name="delete">"刪除"</string>
<string name="delete_confirm_prompt">"您確定要移除這個設定檔嗎?"</string>
<!-- Fuzzy -->
<string name="share_qr_nfc">"QR 碼 / NFC"</string>
<string name="add_profile_dialog">"為 Shadowsocks 新增此設定檔?"</string>
<string name="add_profile_methods_scan_qr_code">"掃描 QR 碼"</string>
<plurals name="removed">
<item quantity="other">"已移除 %d 項"</item>
</plurals>
<string name="undo">"復原"</string>
<!-- tasker -->
<string name="toggle_service_state">"啟動服務"</string>
<string name="start_service_default">"連線至目前的伺服器"</string>
<string name="start_service">"連線至 %s"</string>
<string name="stop_service">"切換至 %s"</string>
<string name="profile_default">"使用目前的設定檔"</string>
<!-- status -->
<string name="sent">"傳送:"</string>
<string name="received">"接收:"</string>
<!-- status -->
<string name="connecting">"連線中…"</string>
<string name="vpn_connected">"已連線,輕觸以檢查連線能力"</string>
<string name="not_connected">"未連線"</string>
<!-- acl -->
<string name="custom_rules">"自訂規則"</string>
<string name="action_add_rule">"新增規則…"</string>
<string name="edit_rule">"編輯規則"</string>
<string name="route_entry_all">"全部"</string>
<string name="route_entry_bypass_lan">"略過區域網路"</string>
<string name="route_entry_bypass_chn">"略過中國大陸"</string>
<string name="route_entry_bypass_lan_chn">"略過區域網路及中國大陸"</string>
<string name="route_entry_chinalist">"China List"</string>
<string name="acl_rule_templates_generic">"子網路/主機名稱 PCRE 模式"</string>
<string name="acl_rule_templates_domain">"網域及其所有子網域"</string>
<!-- plugin -->
<string name="plugin">"外掛程式"</string>
<string name="plugin_configure">"設定…"</string>
<string name="plugin_disabled">"停用"</string>
<string name="plugin_unknown">"未知插件 %s"</string>
<string name="plugin_untrusted">"警告:此外掛程式似乎不是來自一個已知的受信任來源。"</string>
<string name="profile_plugin">"外掛程式: %s"</string>
<string name="add_profile_scanner_permission_required">"掃描 QR 碼需要相機權限。"</string>
<!-- notification category -->
<string name="service_vpn">"VPN 服務"</string>
<string name="add_profile_methods_manual_settings">"手動設置"</string>
<!-- misc -->
<string name="advanced">"高級"</string>
<!-- misc -->
<string name="service_mode">"服務模式"</string>
<string name="service_mode_proxy">"仅代理"</string>
<string name="service_mode_transproxy">"透明代理"</string>
<string name="port_proxy">"SOCKS5 代理連接埠"</string>
<string name="port_local_dns">"本地 DNS 連接埠"</string>
<string name="port_transproxy">"透明代理連接埠"</string>
<string name="service_proxy">"代理服務"</string>
<string name="service_transproxy">"透明代理服務"</string>
<string name="vpn_permission_denied">"没有權限創建 VPN 服務"</string>
<string name="auto_connect_summary_v24">"允許 Shadowsocks 隨系統啟動,建議使用始終開啟的 VPN"</string>
<string name="direct_boot_aware">"允許鎖屏時切換"</string>
<string name="direct_boot_aware_summary">"選中的配置信息會不那麼安全"</string>
<string name="acl_rule_online_config">"在線規則文件 URL"</string>
<string name="action_import_file">"從文件導入…"</string>
<string name="night_mode">"夜間模式"</string>
<string name="night_mode_system">"跟隨系統"</string>
<string name="night_mode_auto">"自動"</string>
<string name="night_mode_on">"開啟"</string>
<string name="night_mode_off">"關閉"</string>
<string name="send_email">"發送電子郵件"</string>
<string name="action_export_more">"導出…"</string>
<string name="action_export_file">"導出至文件…"</string>
<string name="cleartext_http_warning">"HTTP 明文流量不安全"</string>
<string name="share_over_lan">"通過局域網分享"</string>
<string name="connection_test_pending">"檢查連接"</string>
<string name="file_manager_missing">"請安裝文件管理器,如 MiXplorer"</string>
<string name="tcp_fastopen_failure">"切換失敗"</string>
<string name="udp_fallback">"UDP 配置"</string>
<string name="action_replace_file">"從文件替換…"</string>
<string name="off">"關"</string>
<string name="proxied_apps_mode">"模式"</string>
<string name="metered">"網絡限制"</string>
<string name="metered_summary">"使系統視此 VPN 為按流量計費"</string>
<plurals name="hosts_summary">
<item quantity="other">"配置了 %d 個主機名"</item>
</plurals>
<!-- subscriptions -->
<string name="subscriptions">"訂閱"</string>
<string name="add_subscription">"添加訂閱"</string>
<string name="edit_subscription">"編輯訂閱"</string>
<string name="update_subscription">"更新訂閱"</string>
<string name="service_subscription">"訂閱服務"</string>
<string name="service_subscription_working">"正在更新訂閱 (%d / %d)"</string>
<string name="service_subscription_finishing">"訂閱更新中"</string>
</resources>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<string name="app_name">Shadowsocks</string> <string name="app_name">TT加速器</string>
<string name="quick_toggle">Toggle</string> <string name="quick_toggle">Toggle</string>
<string name="send_email">Send email</string> <string name="send_email">Send email</string>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment